Skip to content

discovery: add TargetGroup, StaticConfig, and Prometheus duration helpers - #39

Draft
bwplotka wants to merge 2 commits into
mainfrom
bwplotka/discovery
Draft

bwplotka wants to merge 2 commits into
mainfrom
bwplotka/discovery

Conversation

@bwplotka

@bwplotka bwplotka commented Nov 8, 2026 •

Copy link
Copy Markdown
Member

Adds the optional discovery Cargo feature (serde and serde_json only) with TargetGroup, StaticConfig, DiscoveryConfigs, and Prometheus duration parsing and formatting helpers (parse_duration and format_duration). Part of prometheus/scrape.rs#36.

Stack:

  1. discovery: add TargetGroup, StaticConfig, and Prometheus duration helpers #39 discovery: add TargetGroup, StaticConfig, and Prometheus duration helpers (this PR)
  2. discovery/dns: add DNS service discovery (dns_sd_configs) #43 discovery/dns: add DNS service discovery (dns_sd_configs)
  3. http_config: add Prometheus HTTPClientConfig and reqwest client builder #44 http_config: add Prometheus HTTPClientConfig and reqwest client builder
  4. discovery/kubernetes: add pod service discovery (role: pod) #45 discovery/kubernetes: add pod service discovery (role: pod)

Commits in reading order:

  1. 4e66d19: discovery: add Prometheus duration parser and formatter
  2. fcb3c41: discovery: add TargetGroup, StaticConfig, and DiscoveryConfigs
Intentional differences from Go
  • StaticConfig and TargetGroup are distinct Rust structs rather than a slice type alias over targetgroup.Group as in discovery/discovery.go#L150 and discovery/targetgroup/targetgroup.go#L24-L65. Both serialize and deserialize identical JSON wire payloads, including always emitting "targets": [] on empty groups.
  • parse_duration and format_duration return unsigned std::time::Duration at millisecond precision instead of signed int64 model.Duration in model/time.go#L227-L294, because discovery refresh intervals are non-negative.

Signed-off-by: Bartek Plotka <bwplotka@gmail.com>
Signed-off-by: Bartek Plotka <bwplotka@gmail.com>
@bwplotka bwplotka changed the title discovery: add feature-gated static, DNS, and Kubernetes pod discovery discovery: add TargetGroup, StaticConfig, and Prometheus duration helpers Nov 10, 2026
@bwplotka
bwplotka added this pull request to stack #47 November 11, 2026 04:32
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.

1 participant