Giter VIP home page Giter VIP logo

woof's People

Contributors

uralian avatar

Watchers

 avatar

woof's Issues

Implement DataDog HTTP client

Implement HTTP client for contacting DD backend. The client should allow the following configuration:

  • API key
  • Application key
  • Endpoint URL

Create StandardMetrics object

Create a StandardMetrics or CommonMetrics object and collect common metrics like system.cpu.idle or system.mem.total there.

Change optional parameters to defaults where applicable

In a number of cases an optional parameter has a meaningful default on the backend. However, having the default as None on client's API is misleading and error prone. Need to change those cases to explicitly pass a value instead of nothing.

For example, if event priority is not set, it is considered Normal by the backend. In the client API it is declared as priority: Option[Priority] = None. Change the API signature to:
priority: Priority = Normal

Revisit aggregator-rollup naming

  • Aggregator is responsible for aggregating multiple reported metric values within one reporting interval (10s, 30s etc.)
  • Rollup is responsible for aggregating metric value over long intervals.

Need to come up with a better naming scheme.

Events API can only query a few days worth of data

Events API can only pull a few days worth of data, so for longer time intervals the client will have to do that in batches and merge the results (see the snippet below). We need to transfer that logic into the API itself.

val api = new EventsHttpApi(client)

val batches = from.getEpochSecond to to.getEpochSecond by batchDuration.getSeconds map { sec =>
  val start = Instant.ofEpochSecond(sec)
  val end = start plus batchDuration
  val eq = EventQuery(start = start, end = end).withTags(filter: _*).noAggregation
  api.query(eq)
}

Redesign event query

Make even query understand complex expressions with logical combinators like AND OR etc.

Consolidate time library

Currently APIs use both Scala Duration and Java Instant classes. Need to decide on a consolidated approach.

Revisit MetricQuery transform()

See if the transform can be simplified with prefix/suffix combo; also simple and compound queries should allow transform as well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.