Esempio n. 1
0
    def test_no_metadata(self):
        families = text_string_to_metric_families("""a 1
# EOF
""")
        metric_family = Metric("a", "", "untyped")
        metric_family.add_sample("a", {}, 1)
        self.assertEqual([metric_family], list(families))
Esempio n. 2
0
 def collect(self):
     while True:
         try:
             all_releases = self.tiller.list_releases()
             break
         except Exception as e:
             print(e)
             continue
     metric = Metric('helm_chart_info', 'Helm chart information', 'gauge')
     chart_count = Counter([
         (release.chart.metadata.name, release.name,
          release.chart.metadata.version, release.chart.metadata.appVersion,
          release.namespace,
          _STATUS_CODE.values_by_number[release.info.status.code].name)
         for release in all_releases
     ])
     for chart in chart_count:
         metric.add_sample('helm_chart_info',
                           value=chart_count[chart],
                           labels={
                               "chart": chart[0],
                               "release": chart[1],
                               "version": chart[2],
                               "appVersion": chart[3],
                               "namespace": chart[4],
                               "status": chart[5]
                           })
     yield metric
Esempio n. 3
0
    def test_restricted_registry(self):
        registry = CollectorRegistry()
        Counter('c_total', 'help', registry=registry)
        Summary('s', 'help', registry=registry).observe(7)

        m = Metric('s', 'help', 'summary')
        m.samples = [Sample('s_sum', {}, 7)]
        self.assertEqual([m], registry.restricted_registry(['s_sum']).collect())
Esempio n. 4
0
    def test_restricted_registry_does_not_call_extra(self):
        from unittest.mock import MagicMock
        registry = CollectorRegistry()
        mock_collector = MagicMock()
        mock_collector.describe.return_value = [Metric('foo', 'help', 'summary')]
        registry.register(mock_collector)
        Summary('s', 'help', registry=registry).observe(7)

        m = Metric('s', 'help', 'summary')
        m.samples = [Sample('s_sum', {}, 7)]
        self.assertEqual([m], list(registry.restricted_registry(['s_sum']).collect()))
        mock_collector.collect.assert_not_called()
Esempio n. 5
0
    def test_untyped(self):
        # https://github.com/prometheus/client_python/issues/79
        families = text_string_to_metric_families("""# HELP redis_connected_clients Redis connected clients
# TYPE redis_connected_clients untyped
redis_connected_clients{instance="rough-snowflake-web",port="6380"} 10.0
redis_connected_clients{instance="rough-snowflake-web",port="6381"} 12.0
""")
        m = Metric("redis_connected_clients", "Redis connected clients", "untyped")
        m.samples = [
            ("redis_connected_clients", {"instance": "rough-snowflake-web", "port": "6380"}, 10),
            ("redis_connected_clients", {"instance": "rough-snowflake-web", "port": "6381"}, 12),
        ]
        self.assertEqual([m], list(families))
Esempio n. 6
0
    def test_empty_metadata(self):
        families = text_string_to_metric_families("""# HELP a 
# UNIT a 
# EOF
""")
        metric_family = Metric("a", "", "untyped")
        self.assertEqual([metric_family], list(families))
Esempio n. 7
0
 def collect(self):
     while True:
         try:
             all_releases = self.tiller.list_releases()
             break
         except Exception as e:
             print(e)
             continue
     metric = Metric('helm_chart_info', 'Helm chart information', 'gauge')
     for release in all_releases:
         name = release.chart.metadata.name
         version = release.chart.metadata.version
         metric.add_sample('helm_chart_info',
                           value=1,
                           labels={
                               "name": name,
                               "version": version
                           })
     yield metric
Esempio n. 8
0
 def collect(self):
     while True:
         try:
             all_releases = self.tiller.list_releases()
             break
         except Exception as e:
             print(e)
             continue
     metric = Metric('helm_chart_info', 'Helm chart information', 'gauge')
     chart_count = Counter([
         (release.chart.metadata.name, release.chart.metadata.version,
          release.namespace) for release in all_releases
     ])
     for chart in chart_count:
         metric.add_sample('helm_chart_info',
                           value=chart_count[chart],
                           labels={
                               "name": chart[0],
                               "version": chart[1],
                               "namespace": chart[2]
                           })
     yield metric
Esempio n. 9
0
    def collect(self):
        '''Collect Prometheus Metrics'''
        linky_frame = self.teleinfo()
        labels = {'job': LINKY_EXPORTER_NAME}
        metrics = []
        # Filter Metrics & Labels
        for key, value in linky_frame.items():
            description = [i['description'] for i in LINKY_FRAME if key == i['name']][0]
            metric_type = [i['type'] for i in LINKY_FRAME if key == i['name']][0]
            if metric_type in ['counter', 'gauge', 'histogram', 'summary']:
                metrics.append({'name': f'linky_{key.lower()}',
                                'value': int(value),
                                'description': description,
                                'type': metric_type})
            else:
                labels[key.lower()] = value

        # Return Prometheus Metrics
        for metric in metrics:
            prometheus_metric = Metric(metric['name'], metric['description'], metric['type'])
            prometheus_metric.add_sample(metric['name'], value=metric['value'], labels=labels)
            yield prometheus_metric
Esempio n. 10
0
    def test_target_info_restricted_registry(self):
        registry = CollectorRegistry(target_info={'foo': 'bar'})
        Summary('s', 'help', registry=registry).observe(7)

        m = Metric('s', 'help', 'summary')
        m.samples = [Sample('s_sum', {}, 7)]
        self.assertEqual([m], registry.restricted_registry(['s_sum']).collect())

        m = Metric('target', 'Target metadata', 'info')
        m.samples = [Sample('target_info', {'foo': 'bar'}, 1)]
        self.assertEqual([m], registry.restricted_registry(['target_info']).collect())
Esempio n. 11
0
    def test_restricted_registry_does_not_yield_while_locked(self):
        registry = CollectorRegistry(target_info={'foo': 'bar'})
        Summary('s', 'help', registry=registry).observe(7)

        m = Metric('s', 'help', 'summary')
        m.samples = [Sample('s_sum', {}, 7)]
        self.assertEqual([m], list(registry.restricted_registry(['s_sum']).collect()))

        m = Metric('target', 'Target metadata', 'info')
        m.samples = [Sample('target_info', {'foo': 'bar'}, 1)]
        for _ in registry.restricted_registry(['target_info', 's_sum']).collect():
            self.assertFalse(registry._lock.locked())