uralian / woof Goto Github PK
View Code? Open in Web Editor NEWDatadog API client for Scala
License: MIT License
Datadog API client for Scala
License: MIT License
Currently, Graph definitions in GraphAPI do not support markers
and events
. Need to add them to the picture.
It makes sense to combine DataDog Graphs & Embeddable Graphs APIs into a single GraphAPI
and change the names into "static"/"snapshot" & "live" respectively.
Make MetricQuery operations consistent with the DD grammar to support binary operators and functions.
Review the code and see if multiple implicits and shortcut methods could be moved under one roof.
Implement HTTP client for contacting DD backend. The client should allow the following configuration:
Release woof
version 0.1.0
Implement DashboardList API to allow grouping dashboards into lists
Setup standard SBT project with the minimal dependency set
Create a StandardMetrics
or CommonMetrics
object and collect common metrics like system.cpu.idle
or system.mem.total
there.
In some cases, query
method throws a JSON exception, complaining about "bad tag value".
JSON serializers in different places need to be optimized for better readability and code reuse.
Response for metric metadata includes integration
field, which seems to be always null
. Need to research the meaning of it.
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
Implement a query builder that would allow creating complicated JSON query requests.
In some cases, an enum has a default, however it is possible that different APIs using the same enum may have different defaults; review those and move Default to the API, if applicable.
Need to make CreateSnapshot request support event query
Need to come up with a better naming scheme.
Currently Dashboard objects are returned without widgets
attribute. Need to complete two-way serialization of widgets.
Need to go through the API and model classes and change the visibility of class members to private
or protected
where appropriate.
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)
}
The response to metric query includes attributes
field; need to research what it means.
Make even query understand complex expressions with logical combinators like AND OR etc.
Response to host search contains "meta" field, need to understand the meaning.
Add deleteAll
convenience method to GraphApi.
Currently APIs use both Scala Duration and Java Instant classes. Need to decide on a consolidated approach.
Currently Dashboard API supports only create
and delete
methods; need to implement the remaining methods of Dashboard API.
Implement DataDog Dashboard API
See if the transform can be simplified with prefix/suffix combo; also simple and compound queries should allow transform as well.
To avoid the need to import multiple packages, combine all implicits in a single package, like api.Implicits
Eg. instead of implementing the tag rendering for EventQuery
inside the serializer, implement a method like tagString
and move the logic there.
Existing integration tests target funny path scenarios. Need to provide more tests targeting missing/invalid data etc.
In some methods (like deleteTags
) the response is empty and returned as Future[Unit]. Need to convert it to Boolean to return true
if successful and false
otherwise.
In some methods, like time series query, both from
and to
are mandatory, yet we should provide "now" default for to
.
Need to add more API shortcut methods for cases like posting a single data point etc.
Assertions (via require()) need to be added to validate artifacts at construction time.
Currently EmbedsApi supports only simple metric query. Need to make it fully compatible with DataDog Graph JSON, which includes visualization options etc.
Since it applies not only to QueryValue but to other graph types as well, it needs to be renamed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.