Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • S Snowflake
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 70
    • Issues 70
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 6
    • Merge requests 6
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • The Tor Project
  • Anti-censorship
  • Pluggable Transports
  • Snowflake
  • Issues
  • #40024

Closed
Open
Created Nov 24, 2020 by Philipp Winter@phwReporter

Expose broker metrics for Prometheus?

We are already exposing metrics but we don't have convenient tooling that turns these metrics into charts that are easy to explore and update automatically.

We could solve this problem by exposing these metrics in a format that our Prometheus instance can scrape. I recently did that for bridgestrap, over at tpo/anti-censorship/bridgestrap#4 (closed). It's not a lot of work but the downside is pulling in yet another semi-complex dependency.

If we were to implement this, here's how it would work:

  • The broker serves a new page, e.g. /prometheus-metrics
  • We can use Prometheus's Go client library to deal with metrics.
  • Throughout the code, we can update metrics like this:
    metrics.NumUnrestrictedNatProxies.Inc()

Does the above sound sensible? If so, I can implement a prototype.

Assignee
Assign to
Time tracking