JFrog Artifactory Prometheus Exporter written in Go
1M+
A Prometheus exporter for JFrog Artifactory stats.
This exporter is under development and more metrics will be added later. Tested on Artifactory Commercial, Enterprise and OSS version 6.x and 7.x.
The Artifactory exporter requires admin user and it supports multiple means of authentication. The following methods are supported:
Basic auth may be used by setting ARTI_USERNAME and ARTI_PASSWORD environment variables.
Artifactory access tokens may be used via the Authorization header by setting ARTI_ACCESS_TOKEN environment variable.
Download the binary for your operation system from release page and run it:
$ ./artifactory_exporter <flags>
Set the credentials in env_file_name and you can deploy this exporter using the peimanja/artifactory_exporter Docker image:
:
$ docker run --env-file=env_file_name -p 9531:9531 peimanja/artifactory_exporter:latest <flags>
Helm must be installed to use the charts. Please refer to Helm's documentation to get started.
Source code for the exporter helm chart can be found here peimanja/helm-charts
Once Helm is set up properly, add the repo as follows:
helm repo add peimanja https://peimanja.github.io/helm-charts
helm repo update
See helm repo for command documentation.
See Customizing the Chart Before Installing. To see all configurable options with detailed comments, visit the chart's values.yaml, or run these configuration commands:
# Helm 3
helm show values peimanja/prometheus-artifactory-exporter
Set your values in myvals.yaml:
artifactory:
url: http://artifactory:8081/artifactory
accessToken: "xxxxxxxxxxxxxxxxxxxx"
existingSecret: false
options:
logLevel: info
logFormat: logfmt
telemetryPath: /metrics
verifySSL: false
timeout: 5s
# Helm 3
helm install -f myvals.yaml [RELEASE_NAME] peimanja/prometheus-artifactory-exporter
See configuration below.
See helm install for command documentation.
$ docker run peimanja/artifactory_exporter:latest -h
usage: main --artifactory.user=ARTIFACTORY.USER [<flags>]
Flags:
-h, --help Show context-sensitive help (also try --help-long and --help-man).
--web.listen-address=":9531"
Address to listen on for web interface and telemetry.
--web.telemetry-path="/metrics"
Path under which to expose metrics.
--artifactory.scrape-uri="http://localhost:8081/artifactory"
URI on which to scrape JFrog Artifactory.
--artifactory.ssl-verify Flag that enables SSL certificate verification for the scrape URI
--artifactory.timeout=5s Timeout for trying to get stats from JFrog Artifactory.
--log.level=info Only log messages with the given severity or above. One of: [debug, info, warn, error]
--log.format=logfmt Output format of log messages. One of: [logfmt, json]
| Flag / Environment Variable | Required | Default | Description |
|---|---|---|---|
web.listen-addressWEB_LISTEN_ADDR | No | :9531 | Address to listen on for web interface and telemetry. |
web.telemetry-pathWEB_TELEMETRY_PATH | No | /metrics | Path under which to expose metrics. |
artifactory.scrape-uriARTI_SCRAPE_URI | No | http://localhost:8081/artifactory | URI on which to scrape JFrog Artifactory. |
artifactory.ssl-verifyARTI_SSL_VERIFY | No | true | Flag that enables SSL certificate verification for the scrape URI. |
artifactory.timeoutARTI_TIMEOUT | No | 5s | Timeout for trying to get stats from JFrog Artifactory. |
log.level | No | info | Only log messages with the given severity or above. One of: [debug, info, warn, error]. |
log.format | No | logfmt | Output format of log messages. One of: [logfmt, json]. |
ARTI_USERNAME | *No | User to access Artifactory | |
ARTI_PASSWORD | *No | Password of the user accessing the Artifactory | |
ARTI_ACCESS_TOKEN | *No | Access token for accessing the Artifactory |
ARTI_USERNAME and ARTI_PASSWORD or ARTI_ACCESS_TOKEN environment variables has to be set.Some metrics are not available with Artifactory OSS license. The exporter returns the following metrics:
| Metric | Description | Labels | OSS support |
|---|---|---|---|
| artifactory_up | Was the last scrape of Artifactory successful. | ✅ | |
| artifactory_exporter_build_info | Exporter build information. | version, revision, branch, goversion | ✅ |
| artifactory_exporter_total_scrapes | Current total artifactory scrapes. | ✅ | |
| artifactory_exporter_total_api_errors | Current total Artifactory API errors when scraping for stats. | ✅ | |
| artifactory_exporter_json_parse_failures | Number of errors while parsing Json. | ✅ | |
| artifactory_replication_enabled | Replication status for an Artifactory repository (1 = enabled). | name, type, cron_exp | |
| artifactory_security_groups | Number of Artifactory groups. | ||
| artifactory_security_users | Number of Artifactory users for each realm. | realm | |
| artifactory_storage_artifacts | Total artifacts count stored in Artifactory. | ✅ | |
| artifactory_storage_artifacts_size_bytes | Total artifacts Size stored in Artifactory in bytes. | ✅ | |
| artifactory_storage_binaries | Total binaries count stored in Artifactory. | ✅ | |
| artifactory_storage_binaries_size_bytes | Total binaries Size stored in Artifactory in bytes. | ✅ | |
| artifactory_storage_filestore_bytes | Total space in the file store in bytes. | storage_dir, storage_type | ✅ |
| artifactory_storage_filestore_used_bytes | Space used in the file store in bytes. | storage_dir, storage_type | ✅ |
| artifactory_storage_filestore_free_bytes | Space free in the file store in bytes. | storage_dir, storage_type | ✅ |
| artifactory_storage_repo_used_bytes | Space used by an Artifactory repository in bytes. | name, package_type, type | ✅ |
| artifactory_storage_repo_folders | Number of folders in an Artifactory repository. | name, package_type, type | ✅ |
| artifactory_storage_repo_files | Number files in an Artifactory repository. | name, package_type, type | ✅ |
| artifactory_storage_repo_items | Number Items in an Artifactory repository. | name, package_type, type | ✅ |
| artifactory_artifacts_created_1m | Number of artifacts created in the repo (last 1 minute). | name, package_type, type | ✅ |
| artifactory_artifacts_created_5m | Number of artifacts created in the repo (last 5 minutes). | name, package_type, type | ✅ |
| artifactory_artifacts_created_15m | Number of artifacts created in the repo (last 15 minutes). | name, package_type, type | ✅ |
| artifactory_artifacts_downloaded_1m | Number of artifacts downloaded from the repository (last 1 minute). | name, package_type, type | ✅ |
| artifactory_artifacts_downloaded_5m | Number of artifacts downloaded from the repository (last 5 minutes). | name, package_type, type | ✅ |
| artifactory_artifacts_downloaded_15m | Number of artifacts downloaded from the repository (last 15 minute). | name, package_type, type | ✅ |
| artifactory_system_healthy | Is Artifactory working properly (1 = healthy). | ✅ | |
| artifactory_system_license | License type and expiry as labels, seconds to expiration as value | type, licensed_to, expires | ✅ |
| artifactory_system_version | Version and revision of Artifactory as labels. | version, revision | ✅ |
Dashboard can be found here.

Content type
Image
Digest
sha256:e03e562f8…
Size
9 MB
Last updated
about 1 year ago
docker pull peimanja/artifactory_exporter