Skip to content

Guidewire/teamcity_exporter

Repository files navigation

Teamcity Exporter

Export Teamcity builds metrics to Prometheus.

To build it:

$ docker run -it --rm -v "$PWD":/go/src/github.com/guidewire/teamcity_exporter -w /go/src/github.com/guidewire/teamcity_exporter -e GOOS=linux -e GOARCH=amd64 -e GOPATH=/go/src/github.com/guidewire/teamcity_exporter -e GOBIN=/go/src/github.com/guidewire/teamcity_exporter/bin golang:1.8 go get

To run it:

$ ./teamcity_exporter [flags]

Exported Metrics

Export all the metrics that Teamcity's /statistics endpoint provides.

Flags

./teamcity_exporter --help
  • config: Path to configuration file
  • web.listen-address: Address to listen on for web interface and telemetry
  • web.telemetry-path: Path under which to expose metrics
  • log.level: Only log messages with the given severity or above. Valid levels: [debug, info, warn, error, fatal]
  • log.format: Set the log target and format. Example: logger:syslog?appname=bob&local=7 or logger:stdout?json=true (default logger:stderr)
  • version: Print current version

Configuration

Configuration template:

instances:
- name: prod
  url: https://teamcity-prod.com
  username: login
  password: password
  scrape_interval: 100 # seconds
  concurrency_limit: 10 # simultaneous Teamcity connections
  builds_filters:
  - name: prod-filter1
    filter:
      status: success
      running: false
      canceled: false
- name: dev
  url: https://teamcity-dev.com
  username: login
  password: password
  scrape_interval: 80 # seconds
  concurrency_limit: 10 # simultaneous Teamcity connections
  builds_filters:
  - name: dev-filter1
    filter:
      build_type: buildtype1
      status: failure
      running: false
      canceled: false
  - name: dev-filter2
    filter:
      build_type: buildtype2
      branch: master
      status: success
      running: false
      canceled: false

Available builds filters

Filter name Possible values Description
build_type depends on your setup, example myBuildConfiguration builds of the specified build configuration. By default, the filter will run against all available configurations.
branch depends on your setup, example master limit the builds by branch
status success/failure/error list builds with the specified status only
running true/false/any limit builds by the running flag. By default, running builds are not included.
canceled true/false/any limit builds by the canceled flag. By default, canceled builds are not included.

For more details, read official Teamcity documentation. At the moment not all the filters' parameters are available in this project.