Skip to content

Add build_info metric and use it in generated queries #35

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

Merged
merged 26 commits into from
May 11, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
93abf6b
Add blurb to readme about identifying commits
brettimus May 10, 2023
49f6d90
Remove "coming soon" from readme item on adding links to live Prom ch…
brettimus May 10, 2023
41d7649
Add WIP section to the readme on using build info (version/commit)
brettimus May 10, 2023
cd38170
Add constants
brettimus May 10, 2023
3d5cc9c
Initialize Prometheus Gauge for build_info
brettimus May 10, 2023
3cee169
Add updown counter for build info to otel tracker
brettimus May 10, 2023
936ed06
Implement set_build_info for OTEL and Prom, and call when we set the …
brettimus May 10, 2023
44ac3c5
Update README
brettimus May 10, 2023
2d21708
Move set_build_info call into create_tracker
May 10, 2023
0d7db6e
Update prometheus queries
May 10, 2023
02ad205
Update prometheus URL tests
May 10, 2023
9a3b55a
Add test for build_info gauge for prometheus tracker (skipped test fo…
May 10, 2023
cd74486
Checkpoint (saving work for later reference)
May 10, 2023
f20e973
Update otel tracker and tracker tests after finding otel prometheus bug
May 10, 2023
c362620
Update env vars we mention in README (still needs more thought)
May 10, 2023
034406a
Ensure set_build_info is only called once
May 10, 2023
b1eef93
Fix "call once" logic of set_build_info
brettimus May 10, 2023
a071249
Remove commented out test
brettimus May 10, 2023
5bcc0ba
Update changelog
brettimus May 10, 2023
894c224
Remove unnecessary commented-out print statements
brettimus May 10, 2023
b58510f
Add set_build_info to the TrackMetrics Protocol
brettimus May 10, 2023
7163175
Fix build_info query based off of autometrics-dev/autometrics-shared#8
brettimus May 10, 2023
c44a621
Rename create_tracker to init_tracker
May 11, 2023
c916061
Use types instead of ifs
May 11, 2023
b754103
Update pyright
May 11, 2023
4cb6cd4
Update README to mention OpenTelemetry tracker does not work with bui…
May 11, 2023
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Rename create_tracker to init_tracker
  • Loading branch information
Brett Beutell committed May 11, 2023
commit c44a6213628e4b73cfdc6b014cf0d39788438bcb
14 changes: 7 additions & 7 deletions src/autometrics/tracker/test_tracker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from .opentelemetry import OpenTelemetryTracker
from .prometheus import PrometheusTracker

from .tracker import default_tracker, create_tracker, set_tracker, TrackerType
from .tracker import default_tracker, init_tracker, TrackerType


def test_default_tracker(monkeypatch):
Expand All @@ -27,16 +27,16 @@ def test_default_tracker(monkeypatch):
assert isinstance(tracker, OpenTelemetryTracker)


def test_create_prometheus_tracker_set_build_info(monkeypatch):
"""Test that create_tracker (for a Prometheus tracker) calls set_build_info using env vars."""
def test_init_prometheus_tracker_set_build_info(monkeypatch):
"""Test that init_tracker (for a Prometheus tracker) calls set_build_info using env vars."""

commit = "d6abce3"
version = "1.0.1"

monkeypatch.setenv("AUTOMETRICS_COMMIT", commit)
monkeypatch.setenv("AUTOMETRICS_VERSION", version)

prom_tracker = create_tracker(TrackerType.PROMETHEUS)
prom_tracker = init_tracker(TrackerType.PROMETHEUS)
assert isinstance(prom_tracker, PrometheusTracker)

blob = generate_latest()
Expand All @@ -50,9 +50,9 @@ def test_create_prometheus_tracker_set_build_info(monkeypatch):
monkeypatch.delenv("AUTOMETRICS_COMMIT", raising=False)


def test_create_otel_tracker_set_build_info(monkeypatch):
def test_init_otel_tracker_set_build_info(monkeypatch):
"""
Test that create_tracker (for an OTEL tracker) calls set_build_info using env vars.
Test that init_tracker (for an OTEL tracker) calls set_build_info using env vars.
Note that the OTEL collector translates metrics to Prometheus.
"""
pytest.skip(
Expand All @@ -65,7 +65,7 @@ def test_create_otel_tracker_set_build_info(monkeypatch):
monkeypatch.setenv("AUTOMETRICS_COMMIT", commit)
monkeypatch.setenv("AUTOMETRICS_VERSION", version)

otel_tracker = create_tracker(TrackerType.OPENTELEMETRY)
otel_tracker = init_tracker(TrackerType.OPENTELEMETRY)
assert isinstance(otel_tracker, OpenTelemetryTracker)

blob = generate_latest()
Expand Down
6 changes: 3 additions & 3 deletions src/autometrics/tracker/tracker.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class TrackerType(Enum):
PROMETHEUS = "prometheus"


def create_tracker(tracker_type: TrackerType) -> TrackMetrics:
def init_tracker(tracker_type: TrackerType) -> TrackMetrics:
"""Create a tracker"""
tracker_instance = None
if tracker_type == TrackerType.OPENTELEMETRY:
Expand Down Expand Up @@ -73,7 +73,7 @@ def get_tracker_type() -> TrackerType:
def default_tracker():
"""Setup the default tracker."""
preferred_tracker = get_tracker_type()
return create_tracker(preferred_tracker)
return init_tracker(preferred_tracker)


tracker: TrackMetrics = default_tracker()
Expand All @@ -87,4 +87,4 @@ def get_tracker() -> TrackMetrics:
def set_tracker(tracker_type: TrackerType):
"""Set the tracker type."""
global tracker
tracker = create_tracker(tracker_type)
tracker = init_tracker(tracker_type)