Commit Graph

12 Commits

Author SHA1 Message Date
beorn7 0e0e6bff80 Rework the signature aka fingerprint functions.
Move everything over to a more expensive but less collision-prone way.
However, keep the old fingerprinting under the name "FastFingerprint"
to be used in the storage layer (where we need collision detection
anyway).
2015-05-05 18:02:21 +02:00
Julius Volz a68f44ff35 Fix pointer receiver in COWMetric.Set(). 2015-03-10 20:21:25 +01:00
beorn7 af21d456db Unify fingerprinting aka signature calculation.
This fixes https://github.com/prometheus/client_golang/issues/74 .

IT CHANGES THE FINGERPRINTING AND THEREFORE INVALIDATES EACH AND EVERY
PERSISTED FINGERPRINT (I.E. YOU HAVE TO WIPE THE STORAGE TO USE THIS).

This commit removes the LabelValuesToSignature function as it is used
nowhere (and broken in the way it is implemented right now).

Also, remove one more golint warning.
2015-03-03 17:55:37 +01:00
beorn7 a9bdd32c71 Reduce allocations during fingerprinting.
Also, add a test to expose
https://github.com/prometheus/client_golang/issues/74 .

benchmark           old ns/op     new ns/op     delta
BenchmarkMetric     7034          6272          -10.83%

benchmark           old allocs     new allocs     delta
BenchmarkMetric     52             32             -38.46%

benchmark           old bytes     new bytes     delta
BenchmarkMetric     1976          1800          -8.91%
2015-02-12 15:28:31 +01:00
Bjoern Rabenstein d7f8eb1083 Change "Prometheus Team" to "The Prometheus Authors". 2015-02-02 15:14:36 +01:00
Julius Volz c7779ab9ec Add COWMetric and do some code cleanups. 2014-12-12 20:57:05 +01:00
Julius Volz 87a585def8 Adjust various things required for the new storage backend.
- Change Fingerprints to be simple uint64s.
- Deal sensibly with missing metric names.
- Enable finer-grained time resolution.

Merge this concurrently with the merge of the new storage backend into
prometheus/prometheus.

Change-Id: Idd82f137aa0c4286df422c53ce3c62e0de285360
2014-11-24 19:56:40 +01:00
Bjoern Rabenstein 9da2fbcce3 Eliminate a number of style-guide violations.
Change-Id: Iedcd611e5c7ad24c84c004d8d6c551d1734e443c
2014-04-25 21:18:04 +02:00
Julius Volz 9b9a115f95 Add method to merge a LabelSet into a Metric with collision avoidance.
Colliding labels can happen e.g. when an exporter job is scraped and already
includes "job" labels for its samples in /metrics. In this case, a
collisionPrefix of "exporter_" is added to the colliding target labels, but the
specifics (the collision prefix) are managed by Prometheus, not the client
library.
2013-08-12 15:46:42 +02:00
Matt T. Proud 6b26678f98 Fix: Metric sorting comparators.
There was an oversight that resulted in indefinite recursion.
2013-06-22 13:28:15 +02:00
Julius Volz 2c8b7cc19b Update LabelSet and Metric String() methods from server. 2013-06-12 18:47:30 +02:00
Matt T. Proud 10dae5d108 Include relevant server model artifacts.
This commit introduces all relevant server-side artifacts such that the
Result streams can be used by external parties for one-off tools and
such.  This will ultimately better enable us to support additional
wireformats with much more ease.
2013-06-11 11:45:21 +02:00