Projects

Liatrio OTel Collector

Go
OpenTelemetry
Observability
GitHub
GitLab

The git provider receiver I helped build for Liatrio's OTel Collector.

An illustrated avatar of me wearing a green hoodie and a headset.

Problem

Liatrio’s OpenO11y distribution needed a receiver that could scrape Git provider data, so teams could see repository activity in the same observability stack as the rest of their metrics. The gitproviderreceiver gathers metrics such as PR and issue counts and their states, commit counts and branch counts from GitHub and GitLab.

What I built

I worked on the gitproviderreceiver in Go, mainly its GitHub and GitLab scrapers. I added a GitLab branch count metric, tests for the GitHub scraper’s helpers, config, factory and constructor, and GitLab project filtering by topic and search query. I also brought over upstream work that moved the receiver out of pkg/ and aligned its metric names and units with the spec. Along the way I gave clients live demos of it.

What changed

  • The GitLab scraper gained a branch count metric (#97).
  • The GitHub scraper gained tests for its helpers, config, factory and newGitHubScraper (#116, #119, #120, #122).
  • GitLab project listing supports topic and search filters, and switched from GraphQL to the REST API (#158).
  • The receiver moved from pkg/receiver/gitproviderreceiver to receiver/gitproviderreceiver, and metric names and units were aligned with the OpenTelemetry spec (#260).
  • The work ran from September 2023 to January 2024.

Stack

Go, OpenTelemetry Collector, GitHub GraphQL API, GitLab REST API, Prometheus and Grafana.