Skip to content

Commit 6718eb5

Browse files
committed
Add _created to Counter/Summary/Histogram
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io>
1 parent 494a27d commit 6718eb5

File tree

2 files changed

+18
-12
lines changed

2 files changed

+18
-12
lines changed

prometheus_client/core.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,7 @@ def __init__(self, name, labelnames, labelvalues):
761761
if name.endswith('_total'):
762762
name = name[:-6]
763763
self._value = _ValueClass(self._type, name, name + '_total', labelnames, labelvalues)
764+
self._created = time.time()
764765

765766
def inc(self, amount=1):
766767
'''Increment counter by the given amount.'''
@@ -778,7 +779,8 @@ def count_exceptions(self, exception=Exception):
778779
return _ExceptionCounter(self, exception)
779780

780781
def _samples(self):
781-
return (('_total', {}, self._value.get()), )
782+
return (('_total', {}, self._value.get()),
783+
('_created', {}, self._created))
782784

783785

784786
@_MetricWrapper
@@ -914,6 +916,7 @@ def create_response(request):
914916
def __init__(self, name, labelnames, labelvalues):
915917
self._count = _ValueClass(self._type, name, name + '_count', labelnames, labelvalues)
916918
self._sum = _ValueClass(self._type, name, name + '_sum', labelnames, labelvalues)
919+
self._created = time.time()
917920

918921
def observe(self, amount):
919922
'''Observe the given amount.'''
@@ -930,7 +933,8 @@ def time(self):
930933
def _samples(self):
931934
return (
932935
('_count', {}, self._count.get()),
933-
('_sum', {}, self._sum.get()))
936+
('_sum', {}, self._sum.get()),
937+
('_created', {}, self._created))
934938

935939

936940
def _floatToGoString(d):
@@ -986,6 +990,7 @@ def create_response(request):
986990
_reserved_labelnames = ['le']
987991

988992
def __init__(self, name, labelnames, labelvalues, buckets=(.005, .01, .025, .05, .075, .1, .25, .5, .75, 1.0, 2.5, 5.0, 7.5, 10.0, _INF)):
993+
self._created = time.time()
989994
self._sum = _ValueClass(self._type, name, name + '_sum', labelnames, labelvalues)
990995
buckets = [float(b) for b in buckets]
991996
if buckets != sorted(buckets):
@@ -1025,6 +1030,7 @@ def _samples(self):
10251030
samples.append(('_bucket', {'le': _floatToGoString(bound)}, acc))
10261031
samples.append(('_count', {}, acc))
10271032
samples.append(('_sum', {}, self._sum.get()))
1033+
samples.append(('_created', {}, self._created))
10281034
return tuple(samples)
10291035

10301036

tests/test_graphite_bridge.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
except ImportError:
66
import socketserver as SocketServer
77

8-
from prometheus_client import Counter, CollectorRegistry
8+
from prometheus_client import Gauge, CollectorRegistry
99
from prometheus_client.bridge.graphite import GraphiteBridge
1010

1111

@@ -38,37 +38,37 @@ def run(self):
3838
self.gb = GraphiteBridge(address, self.registry, _timer=fake_timer)
3939

4040
def test_nolabels(self):
41-
counter = Counter('c', 'help', registry=self.registry)
42-
counter.inc()
41+
gauge = Gauge('g', 'help', registry=self.registry)
42+
gauge.inc()
4343

4444
self.gb.push()
4545
self.t.join()
4646

47-
self.assertEqual(b'c_total 1.0 1434898897\n', self.data)
47+
self.assertEqual(b'g 1.0 1434898897\n', self.data)
4848

4949
def test_labels(self):
50-
labels = Counter('labels', 'help', ['a', 'b'], registry=self.registry)
50+
labels = Gauge('labels', 'help', ['a', 'b'], registry=self.registry)
5151
labels.labels('c', 'd').inc()
5252

5353
self.gb.push()
5454
self.t.join()
5555

56-
self.assertEqual(b'labels_total.a.c.b.d 1.0 1434898897\n', self.data)
56+
self.assertEqual(b'labels.a.c.b.d 1.0 1434898897\n', self.data)
5757

5858
def test_prefix(self):
59-
labels = Counter('labels', 'help', ['a', 'b'], registry=self.registry)
59+
labels = Gauge('labels', 'help', ['a', 'b'], registry=self.registry)
6060
labels.labels('c', 'd').inc()
6161

6262
self.gb.push(prefix='pre.fix')
6363
self.t.join()
6464

65-
self.assertEqual(b'pre.fix.labels_total.a.c.b.d 1.0 1434898897\n', self.data)
65+
self.assertEqual(b'pre.fix.labels.a.c.b.d 1.0 1434898897\n', self.data)
6666

6767
def test_sanitizing(self):
68-
labels = Counter('labels', 'help', ['a'], registry=self.registry)
68+
labels = Gauge('labels', 'help', ['a'], registry=self.registry)
6969
labels.labels('c.:8').inc()
7070

7171
self.gb.push()
7272
self.t.join()
7373

74-
self.assertEqual(b'labels_total.a.c__8 1.0 1434898897\n', self.data)
74+
self.assertEqual(b'labels.a.c__8 1.0 1434898897\n', self.data)

0 commit comments

Comments
 (0)