Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

! all: refactor the core metric recording instruments and accomodate UserMetrics #43

Merged
merged 1 commit into from
Jul 3, 2014

Conversation

ivantopo
Copy link
Contributor

@ivantopo ivantopo commented Jul 3, 2014

This PR is including several changes to the kamon-core, most notably:

  • Formalize the interface for Histograms, Counters and MinMaxCounters. Making sure
    that the interfaces are as clean as possible.
  • Move away from the all Vector[Measurement] based Histogram snapshot to a new approach
    in which we use a single long to store both the index in the counts array and the
    frequency on that bucket. The leftmost 2 bytes of each long are used for storing the
    counts array index and the remaining 6 bytes are used for the actual count, and
    everything is put into a simple long array. This way only the buckets that actually
    have values will be included in the snapshot with the smallest possible memory
    footprint.
  • Introduce Gauges.
  • Reorganize the instrumentation for Akka and Scala and rewrite most of the tests
    of this components to avoid going through the subscription protocol to test.
  • Introduce trace tests and fixes on various tests.
  • Necessary changes on new relic, datadog and statsd modules to compile with the new
    codebase.

Pending:

  • Finish the upgrade of the new relic to the current model.
  • Introduce proper limit checks for histograms to ensure that we never pass the 2/6 bytes
    limits.
  • More testing, more testing, more testing.
  • Create the KamonStandalone module.

I think that we still have a lot to do over this, but it is time to move it to master and start building on top of it.

@dpsoft
Copy link
Contributor

dpsoft commented Jul 3, 2014

Looks Really Good To Me!!!!!!

…UserMetrics

This PR is including several changes to the kamon-core, most notably:
  - Formalize the interface for Histograms, Counters and MinMaxCounters. Making sure
    that the interfaces are as clean as possible.
  - Move away from the all Vector[Measurement] based Histogram snapshot to a new approach
    in which we use a single long to store both the index in the counts array and the
    frequency on that bucket. The leftmost 2 bytes of each long are used for storing the
    counts array index and the remaining 6 bytes are used for the actual count, and
    everything is put into a simple long array. This way only the buckets that actually
    have values will be included in the snapshot with the smallest possible memory
    footprint.
  - Introduce Gauges.
  - Reorganize the instrumentation for Akka and Scala and rewrite most of the tests
    of this components to avoid going through the subscription protocol to test.
  - Introduce trace tests and fixes on various tests.
  - Necessary changes on new relic, datadog and statsd modules to compile with the new
    codebase.

Pending:
  - Finish the upgrade of the new relic to the current model.
  - Introduce proper limit checks for histograms to ensure that we never pass the 2/6 bytes
    limits.
  - More testing, more testing, more testing.
  - Create the KamonStandalone module.
@ivantopo ivantopo merged commit 29068fc into master Jul 3, 2014
@ivantopo ivantopo deleted the wip/metrics-collection-refactor branch July 7, 2014 20:42
ivantopo added a commit that referenced this pull request Mar 29, 2020
ivantopo pushed a commit that referenced this pull request Mar 29, 2020
* up libraries

* tag http.status_code as metric

* added supporting for StandaloneWSClient

* added supporting for StandaloneWSClient

* fixed double metrics collection. Because WSClient use underlying StandaloneWSClient

* fixed sbt settings

* return previous build.sbt

* return previous build.sbt

* up dependencies

* don't tag http.status_code as metric

* up javaagent

* up sbt

* remove scala 2.10 supporting

* fixed compilation errors for ForkOptions types

* fixed akka-http dependency
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants