This repository has been archived by the owner on Jul 16, 2022. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Consolidate Client JVM tto serve WebSocket Protocol and Prometheus metrics * Enable ZIO Core metrics for example * Migrating the Prometheus encoding to ZIO 2 RC3 * Migrate to ZIO 2.0 RC3 / ZIO-JSON * More refactoring, Refactored Samples * Working on Migration to ZIO2 RC3 * Cleaning up compile errors after migrating to ZIO-Json * Work on Json serialization / deserialization based on ZIO Json * Finalize Client message serialization * Apply formatting * Finalize Json (de)serialization and tests * Finalize protocol serialization with ZIO Json * Refactor JS API to recent changes in metrics API * Refactoring ScalaJS client for new API * Apply formatting * Finalize JS client refactoring * Fix test in Prometheus Encoder * Adding ZIO Json based dashboard im/export * Ensure the grid-rows and grid-cols CSS defs are included in the tailwinf generated CSS * Merge stashed changes. * ZIO 2.0 RC3 -> RC4 * Adjust to changes in ZIO 2 RC4 * Fix selection for individual keys in Ui * Work on Json serialization / deserialization based on ZIO Json * Apply formatting * Finalize JS client refactoring * Fix test in Prometheus Encoder * Adding ZIO Json based dashboard im/export * Ensure the grid-rows and grid-cols CSS defs are included in the tailwinf generated CSS * Adjust to changes in ZIO 2 RC4 * Fix selection for individual keys in Ui * Finalize refactoring of StatsdListener * ReExport Grafana Dashboard after updating to RC4 - Update Dashboard ScreenShot * Working on StatsDListener config * Adding skeleton for StatsdListener Spec * Make sure to use a login shell * [WIP] First pass at a New Relic encoder. * Common code for creating a New Relic Summary extracted. 'NewRelicEncoders' -> 'NewRelicEncoder'. * [WIP] Top level array of 'metric' objects is now properly encoded. - Generators added for Counter, Gauge and Frequency, - New set of JsonAssertions added to streamline testing. - 'NewRelicEncoderSpec' added and is verifying Counter, Gauge and Frequency. * [WIP] Updated build.sbt so as to be able to resolve snapshots. * ZIO RC4 support for min and max added to NewRelicEncoder. * Code formatting, name changes, test refactor and Histogram generator added. * Formatting applied. * More formatting. * Added a new architectural apporach to the services in New Relic. They might be generic enough to use elsewhere. * WIP: Additional testing. * Fixed versions * Switching to the new Polling Model for Backends I also went ahead with a first pass at a standard agent API backend. Still needs work and vetting but it's a start. * Fixed race condition that occurs when polling rate exceeds batching rate. * Moved snapshot acquisition outside the mutex to reduce the chance of lost metrics. * Back pressuring logic added with relase valve. * Comments * MetricPublisher will no longer fail just returns a Result type. NewRelicEncoder Histogram and Summary no longer produce buckets. * MetricAgent refactoring for performance - Preformance tests added for MetricAgent. - No longer using 'groupedWithin' instead there is now optional thottling and and a max publishing size. * encoding and publshing have been separated so that publishing batching is correct. * Refactor StatsdListener to use Encoder * just formatting * Basic refactoring after merging Metric Agent work * Moving files from zio core * Pulling in MetricEvent update * Bump versions to latest ZIO 2 SNAPSHOTS * Just a PoC for a MetricHub we can brainstorm against. * Refining the API towards MetricEvents / Publishers hooked up with the generic polling client * MetricEvent with diffing smart constructor. * More PoCs around MetricEvent, moved old PoCs to the attic * Added the alternate Sonatype snapshot repo. * Made 'retrieveNext' safer. * Clean up commented-out code. * Using local snapshot for zio-http * NewRelicPublisher and spec are now working :D * Integration test added for New Relic Publisher - Code clean up to reflect current direction of ZMX. - License added where it was missing. * scalafmt * scaladmt on test. added command alias, 'formatAll'. * scalafmt on build.sbt. * Added a test aspect 'ignoreIf' to provide better feedback and ignore the NewRelicPublisherTest if the NR API Key env var is not present. * Fixed broken test cases. * scalafmt * Refactoring the Prometheus Backend towards the new MetricEncoder and MetricPublisher API * Implemented full-featured New Relic server example. It uses the pre-existing 'InstrumentedSample' program to create sample data along with include both jvm and ZIO telemetry. I added a bunch of convenience accessors and layers to make user experience as painless as possible. * Fix trait name. * Gauges should always be sent. * Added exported New Relic dashboard settings. * Refactor Stats Encoder / Publisher to new API. Refactor and fix tests. Add a CollectingPublisher to collect encoded metrics in test cases * Added temporary rate shaping to the NewRelicPublisher. * Integrated newest changes from 'series/2.x' plus snapshot that fixes hung process. * Updated to the most recent ZIO 2.0 snaphot * Refactor to a proper ZMX App Hierarchy. I did a bunch of refinement around ZMXApp and NewRelicApp. ZMXApp now bootstraps both the MetricClient, internal JVM tracking and internal ZIO tracking. This tracking can be controlled via the flags provided by 'InternalMetrics#Settings'. Classes extending ZMXApp can provide additional environmental dependencies and can hook into the 'environmentalLayer' by override 'additionalEnvironment' NewRelicApp extends from ZMXApp and uses 'additionalEnvironment' to register the 'NewRelicListener' with the 'MetricClient. It also bootstraps publisher's event stream queue. All '#Settings' now have 'live' layers that can pull settings from environment variables and provide sane defaults where appropriate. Many of the utility methods that were in package objects have found homes in logically associated companion objects. * scalfmt * Made 'getWithDefault' safe. * Spelling * ZLayer.succeed -> ZEnvironment * Reduced alternative "bloat" and NewRelicPublisher more configurable. * Fix broken test compilation. * Updates for ZIO 2.0 RC6 * Remove some commented-out code, some small refactors and some renaming. * Small tweaks. * Fix failed compilation. * Use values provided by setting in NR publisher, bump versions based on ZIO 2 RC 6 * Move ScalaJS client to ZIO Insight Rename packages from zio.zmx to zio.metrics.connectors * Cleanup module structure Cleanup build file * Refactor tests to new package structure * Moving ScalaJS client doc to ZIO Insight * Move MetricClient to internal connectors pkg. * Just starting some comments * Refactor Statsd backend to latest ZLayers for ZIO 2 * Clean up backend API to Layers * Just formatting * Finalise the new layer structure * Clean up test code * Bring back the sample application * Just refactor the sample app a bit * Adding all available backends to sampleApp * Update dashboard examples * correct socket handling for StatsD * Finalise sample app testing, working for all backends * Remove obsolete code from the attic * Remove unnecessary Version references Co-authored-by: Scott T Weaver <scott.t.weaver@gmail.com>
- Loading branch information