• Stars
    star
    147
  • Rank 251,347 (Top 5 %)
  • Language
    Go
  • License
    MIT License
  • Created about 6 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Prometheus exporter for Azure DevOps (VSTS) including agent pools, builds, releases, deployments, pullrequests and repo stats

Azure DevOps Exporter (VSTS)

license DockerHub Quay.io Artifact Hub

Prometheus exporter for Azure DevOps (VSTS) for projects, builds, build times (elapsed and queue wait time), agent pool utilization and active pull requests.

Configuration

Usage:
  azure-devops-exporter [OPTIONS]

Application Options:
      --debug                                 debug mode [$DEBUG]
  -v, --verbose                               verbose mode [$VERBOSE]
      --log.json                              Switch log output to json format [$LOG_JSON]
      --scrape.time=                          Default scrape time (time.duration) (default: 30m) [$SCRAPE_TIME]
      --scrape.time.projects=                 Scrape time for project metrics (time.duration) [$SCRAPE_TIME_PROJECTS]
      --scrape.time.repository=               Scrape time for repository metrics (time.duration) [$SCRAPE_TIME_REPOSITORY]
      --scrape.time.build=                    Scrape time for build metrics (time.duration) [$SCRAPE_TIME_BUILD]
      --scrape.time.release=                  Scrape time for release metrics (time.duration) [$SCRAPE_TIME_RELEASE]
      --scrape.time.deployment=               Scrape time for deployment metrics (time.duration) [$SCRAPE_TIME_DEPLOYMENT]
      --scrape.time.pullrequest=              Scrape time for pullrequest metrics  (time.duration) [$SCRAPE_TIME_PULLREQUEST]
      --scrape.time.stats=                    Scrape time for stats metrics  (time.duration) [$SCRAPE_TIME_STATS]
      --scrape.time.resourceusage=            Scrape time for resourceusage metrics  (time.duration) [$SCRAPE_TIME_RESOURCEUSAGE]
      --scrape.time.query=                    Scrape time for query results  (time.duration) [$SCRAPE_TIME_QUERY]
      --scrape.time.live=                     Scrape time for live metrics (time.duration) (default: 30s) [$SCRAPE_TIME_LIVE]
      --stats.summary.maxage=                 Stats Summary metrics max age (time.duration) [$STATS_SUMMARY_MAX_AGE]
      --azuredevops.url=                      Azure DevOps url (empty if hosted by microsoft) [$AZURE_DEVOPS_URL]
      --azuredevops.access-token=             Azure DevOps access token [$AZURE_DEVOPS_ACCESS_TOKEN]
      --azuredevops.access-token-file=        Azure DevOps access token (from file) [$AZURE_DEVOPS_ACCESS_TOKEN_FILE]
      --azuredevops.organisation=             Azure DevOps organization [$AZURE_DEVOPS_ORGANISATION]
      --azuredevops.apiversion=               Azure DevOps API version (default: 5.1) [$AZURE_DEVOPS_APIVERSION]
      --azuredevops.agentpool=                Enable scrape metrics for agent pool (IDs) [$AZURE_DEVOPS_AGENTPOOL]
      --whitelist.project=                    Filter projects (UUIDs) [$AZURE_DEVOPS_FILTER_PROJECT]
      --blacklist.project=                    Filter projects (UUIDs) [$AZURE_DEVOPS_BLACKLIST_PROJECT]
      --list.query=                           Pairs of query and project UUIDs in the form: '<queryId>@<projectId>'
                                              [$AZURE_DEVOPS_QUERIES]
      --cache.expiry=                         Internal cache expiry time (time.duration) (default: 30m) [$CACHE_EXPIRY]
      --request.concurrency=                  Number of concurrent requests against dev.azure.com (default: 10)
                                              [$REQUEST_CONCURRENCY]
      --request.retries=                      Number of retried requests against dev.azure.com (default: 3) [$REQUEST_RETRIES]
      --limit.project=                        Limit number of projects (default: 100) [$LIMIT_PROJECT]
      --limit.builds-per-project=             Limit builds per project (default: 100) [$LIMIT_BUILDS_PER_PROJECT]
      --limit.builds-per-definition=          Limit builds per definition (default: 10) [$LIMIT_BUILDS_PER_DEFINITION]
      --limit.releases-per-project=           Limit releases per project (default: 100) [$LIMIT_RELEASES_PER_PROJECT]
      --limit.releases-per-definition=        Limit releases per definition (default: 100) [$LIMIT_RELEASES_PER_DEFINITION]
      --limit.deployments-per-definition=     Limit deployments per definition (default: 100) [$LIMIT_DEPLOYMENTS_PER_DEFINITION]
      --limit.releasedefinitions-per-project= Limit builds per definition (default: 100) [$LIMIT_RELEASEDEFINITION_PER_PROJECT]
      --limit.build-history-duration=         Time (time.Duration) how long the exporter should look back for builds (default:
                                              48h) [$LIMIT_BUILD_HISTORY_DURATION]
      --limit.release-history-duration=       Time (time.Duration) how long the exporter should look back for releases (default:
                                              48h) [$LIMIT_RELEASE_HISTORY_DURATION]
      --server.bind=                          Server address (default: :8080) [$SERVER_BIND]
      --server.timeout.read=                  Server read timeout (default: 5s) [$SERVER_TIMEOUT_READ]
      --server.timeout.write=                 Server write timeout (default: 10s) [$SERVER_TIMEOUT_WRITE]

Help Options:
  -h, --help                                  Show this help message

Metrics

Metric Scraper Description
azure_devops_stats live General scraper stats
azure_devops_agentpool_info live Agent Pool informations
azure_devops_agentpool_size live Number of agents per agent pool
azure_devops_agentpool_usage live Usage of agent pool (used agents; percent 0-1)
azure_devops_agentpool_queue_length live Queue length per agent pool
azure_devops_agentpool_agent_info live Agent information per agent pool
azure_devops_agentpool_agent_status live Status informations (eg. created date) for each agent in a agent pool
azure_devops_agentpool_agent_job live Currently running jobs on each agent
azure_devops_project_info live/projects Project informations
azure_devops_build_latest_info live Latest build information
azure_devops_build_latest_status live Latest build status informations
azure_devops_pullrequest_info pullrequest Active PullRequests
azure_devops_pullrequest_status pullrequest Status informations (eg. created date) for active PullRequests
azure_devops_pullrequest_label pullrequest Labels set on active PullRequests
azure_devops_build_info build Build informations
azure_devops_build_status build Build status infos (queued, started, finished time)
azure_devops_build_stage build Build stage infos (duration, errors, warnings, started, finished time)
azure_devops_build_phase build Build phase infos (duration, errors, warnings, started, finished time)
azure_devops_build_job build Build job infos (duration, errors, warnings, started, finished time)
azure_devops_build_task build Build task infos (duration, errors, warnings, started, finished time)
azure_devops_build_definition_info build Build definition info
azure_devops_release_info release Release informations
azure_devops_release_artifact release Release artifcact informations
azure_devops_release_environment release Release environment list
azure_devops_release_environment_status release Release environment status informations
azure_devops_release_approval release Release environment approval list
azure_devops_release_definition_info release Release definition info
azure_devops_release_definition_environment release Release definition environment list
azure_devops_repository_info repository Repository informations
azure_devops_repository_stats repository Repository stats
azure_devops_repository_commits repository Repository commit counter
azure_devops_repository_pushes repository Repository push counter
azure_devops_query_result live Latest results of given queries
azure_devops_deployment_info deployment Release deployment informations
azure_devops_deployment_status deployment Release deployment status informations
azure_devops_stats_agentpool_builds stats Number of buildsper agentpool, project and result (counter)
azure_devops_stats_agentpool_builds_wait stats Build wait time per agentpool, project and result (summary)
azure_devops_stats_agentpool_builds_duration stats Build duration per agentpool, project and result (summary)
azure_devops_stats_project_builds stats Number of builds per project, definition and result (counter)
azure_devops_stats_project_builds_wait stats Build wait time per project, definition and result (summary)
azure_devops_stats_project_builds_success stats Success rating of build per project and definition (summary)
azure_devops_stats_project_builds_duration stats Build duration per project, definition and result (summary)
azure_devops_stats_project_release_duration stats Release environment duration per project, definition, environment and result (summary)
azure_devops_stats_project_release_success stats Success rating of release environment per project, definition and environment (summary)
azure_devops_resourceusage_build resourceusage Usage of limited and paid Azure DevOps resources (build)
azure_devops_resourceusage_license resourceusage Usage of limited and paid Azure DevOps resources (license)
azure_devops_api_request_* REST api request histogram (count, latency, statuscCodes)

Prometheus queries

Last 3 failed releases per definition for one project

topk by(projectID,releaseDefinitionName,path) (3,
  azure_devops_release_environment{projectID="XXXXXXXXXXXXXXXX", status!="succeeded", status!="inProgress"}
  * on (projectID,releaseID,environmentID) group_left() (azure_devops_release_environment_status{type="created"})
  * on (projectID,releaseID) group_left(releaseName, releaseDefinitionID) (azure_devops_release_info)
  * on (projectID,releaseDefinitionID) group_left(path, releaseDefinitionName) (azure_devops_release_definition_info)
)

Agent pool usage (without PoolMaintenance)

count by(agentPoolID) (
  azure_devops_agentpool_agent_job{planType!="PoolMaintenance"}
  * on(agentPoolAgentID) group_left(agentPoolID) (azure_devops_agentpool_agent_info)
)
/ on (agentPoolID) group_left() (azure_devops_agentpool_size)
* on (agentPoolID) group_left(agentPoolName) (azure_devops_agentpool_info)

Current running jobs

label_replace(
    azure_devops_agentpool_agent_job{planType!="PoolMaintenance"}
    * on (agentPoolAgentID) group_left(agentPoolID,agentPoolAgentName) azure_devops_agentpool_agent_info
    * on (agentPoolID) group_left(agentPoolName) (azure_devops_agentpool_info)
  , "projectID", "$1", "scopeID", "^(.+)$"
)
* on (projectID) group_left(projectName) (azure_devops_project_info)

Agent pool size

azure_devops_agentpool_info
* on (agentPoolID) group_left() (azure_devops_agentpool_size)

Agent pool size (enabled and online)

azure_devops_agentpool_info
* on (agentPoolID) group_left() (
  count by(agentPoolID) (azure_devops_agentpool_agent_info{status="online",enabled="true"})
)

More Repositories

1

Dockerfile

πŸ“¦ Dockerfiles from WebDevOps for PHP, Apache and Nginx
Shell
1,673
star
2

php-docker-boilerplate

🍲 PHP Docker Boilerplate for Symfony, Wordpress, Joomla or any other PHP Project (NGINX, Apache HTTPd, PHP-FPM, MySQL, Solr, Elasticsearch, Redis, FTP)
JavaScript
562
star
3

TYPO3-docker-boilerplate

🍲 TYPO3 Docker Boilerplate project (NGINX, Apache HTTPd, PHP-FPM, MySQL, Solr, Elasticsearch, Redis, FTP)
Shell
233
star
4

azure-metrics-exporter

Azure Monitor metrics exporter for Prometheus with dimension support, template engine and ServiceDiscovery
Go
125
star
5

go-crond

⏰ Cron daemon written in golang (for eg. usage in docker images)
Go
124
star
6

vagrant-docker-vm

πŸ’» Development Vagrant VM with Docker, Samba and Mail sandbox (customizable)
Shell
87
star
7

clitools

πŸ”§ CliTools for Docker, PHP / MySQL development, debugging and synchonization
PHP
84
star
8

go-sync

πŸ” CLI synchronization utility to sync project files and databases for your local project with SSH and Docker support
Go
67
star
9

pagerduty-exporter

Prometheus exporter for PagerDuty informations
Go
55
star
10

go-replace

Replace in file console utility written in golang (for eg. usage in docker images)
Go
50
star
11

TYPO3-metaseo

TYPO3 MetaSEO Extension
PHP
38
star
12

samson-deployment

πŸš€ ZenDesk Samson deployment as Docker service with Ansistrano, Capistrano and PHP Deployer
Shell
35
star
13

azure-resourcemanager-exporter

Prometheus exporter for Azure ResourceManager informations (infos, quotas, limits, usages, public IPs, portscanner)
Go
33
star
14

Neos-docker-boilerplate

🍲 NEOS Docker Boilerplate project (NGINX, Apache HTTPd, PHP-FPM, MySQL, Solr, Elasticsearch, Redis, FTP)
JavaScript
18
star
15

alertmanager2es

Collects alertmanager alerts and pushes them to ElasticSearch (fork from cloudflare)
Go
15
star
16

azure-keyvault-exporter

Prometheus exporter for Azure Keyvault entries (expiry date)
Go
14
star
17

helm-azure-tpl

Helm plugin and standalone tool for Azure - injecting Azure information and KeyVault secrets into files using go template engine
Go
13
star
18

public-holiday-exporter

Prometheus exporter for public holidays
Go
9
star
19

azure-loganalytics-exporter

Prometheus exporter for Azure LogAnalytics (Kusto queries)
Go
9
star
20

azure-scheduledevents-exporter

Prometheus exporter for Azure ScheduledEvents (announced maintenance windows)
Go
9
star
21

go-syslogd

Syslog daemon (with named pipes support) written in golang (for eg. usage in docker images)
Go
8
star
22

azure-resourcegraph-exporter

Prometheus exporter for Azure ResourceGraph queries
Go
7
star
23

php-docker

[DEPRECATED] Prebuilt PHP Docker images for PHP Docker Boilerplate
7
star
24

shelly-plug-exporter

Prometheus exporter for Shelly plugs
Go
6
star
25

azure-janitor

Janitor for Azure Resources, ResourceGroups, Deployments and RoleAssignments by ttl
Go
6
star
26

azure-auditor

Audit service for Azure cloud with Prometheus violation metrics
Go
6
star
27

azure-scheduledevents-manager

Azure Scheduledevents manager for kubernetes and VMs (automatic drain and Prometheus metrics)
Go
6
star
28

go-devtool

πŸ”§ Developer operations toolbox for MySQL, PostgreSQL and TYPO3
Go
5
star
29

deadmanssnitch-exporter

Prometheus exporter for DeadMansSnitch
Go
5
star
30

apprelease-exporter

Prometheus exporter for GItHub Tags/Releases and Docker repositories with CVE reports
Go
5
star
31

azure-k8s-autopilot

K8S operator for Azure VMSS/VM for automatic repair and update
Go
4
star
32

k8s-rollingupdate

Rolling update trigger for Kubernetes Deployments, Daemonsets and Statefulsets
Go
4
star
33

gq-gmc-exporter

Prometheus exporter for GQ GMC (Geiger–Muller counter) devices
Go
4
star
34

azuredevops-deployment-operator

Operator which takes care of automated (re)deployments
Go
3
star
35

Docker-Image-Baselayout

Shell
3
star
36

azure-msi-operator

Operator for Azure Managed Service Identity inside Kubernetes (aad-pod-identity)
Go
3
star
37

myuplink-exporter

Prometheus exporter for myuplink.com
Go
2
star
38

pagerduty2es

Exporter for incidents and logentries from PagerDuty to ElasticSearch
Go
2
star
39

simulation-exporter

Prometheus exporter for simluated metrics (for testing)
Go
2
star
40

TYPO3-context-loader

πŸ”§ Context configuration loader for TYPO3 (TYPO3_CONTEXT)
PHP
2
star
41

go-common

Common golang library for Prometheus exporters
Go
2
star
42

fenecon-exporter

Prometheus exporter for Fenecon systems
Go
2
star
43

azure-audit-exporter-old

Prometheus exporter for Azure audit metrics
Go
1
star
44

WebDevOps_Documentation

WebDevOps documentation (work in progress)
1
star
45

kube-pool-manager

Manages Kubernetes pools (annotation, labels, roles, configSource) by any node spec (json path support)
Go
1
star
46

go-stubfilegenerator

Stub file generator written in go
Go
1
star
47

azure-k8s-autorepair

Automatic repair of K8s cluster nodes in Azure
Go
1
star
48

vagrant-vm-disk

Vagrant Optional Repository for VM disks
1
star
49

kube-bootstrap-token-manager

Manager for Kubernetes bootstrap tokens with cloud support
Go
1
star