Categorygithub.com/jetstack/dependency-track-exporter
modulepackage
0.1.2
Repository: https://github.com/jetstack/dependency-track-exporter.git
Documentation: pkg.go.dev

# README

Dependency-Track Exporter

Exports Prometheus metrics for Dependency-Track.

Usage

usage: dependency-track-exporter [<flags>]

Flags:
  -h, --help                Show context-sensitive help (also try --help-long and --help-man).
      --web.config.file=""  [EXPERIMENTAL] Path to configuration file that can enable TLS or authentication.
      --web.listen-address=":9916"
                            Address to listen on for web interface and telemetry.
      --web.metrics-path="/metrics"
                            Path under which to expose metrics
      --dtrack.address=DTRACK.ADDRESS
                            Dependency-Track server address (default: http://localhost:8080 or $DEPENDENCY_TRACK_ADDR)
      --dtrack.api-key=DTRACK.API-KEY
                            Dependency-Track API key (default: $DEPENDENCY_TRACK_API_KEY)
      --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]
      --version             Show application version.

The API key the exporter uses needs to have the following permissions:

  • VIEW_POLICY_VIOLATION
  • VIEW_PORTFOLIO

Metrics

MetricMeaningLabels
dependency_track_portfolio_inherited_risk_scoreThe inherited risk score of the whole portfolio.
dependency_track_portfolio_vulnerabilitiesNumber of vulnerabilities across the whole portfolio, by severity.severity
dependency_track_portfolio_findingsNumber of findings across the whole portfolio, audited and unaudited.audited
dependency_track_project_infoProject information.uuid, name, version, active, tags
dependency_track_project_vulnerabilitiesNumber of vulnerabilities for a project by severity.uuid, name, version, severity
dependency_track_project_policy_violationsPolicy violations for a project.uuid, name, version, state, analysis, suppressed
dependency_track_project_last_bom_importLast BOM import date, represented as a Unix timestamp.uuid, name, version
dependency_track_project_inherited_risk_scoreInherited risk score for a project.uuid, name, version

Example queries

Retrieve the number of WARN policy violations that have not been analyzed or suppressed:

dependency_track_project_policy_violations{state="WARN",analysis!="APPROVED",analysis!="REJECTED",suppressed="false"} > 0

Exclude inactive projects:

dependency_track_project_policy_violations{state="WARN",analysis!="APPROVED",analysis!="REJECTED",suppressed="false"} > 0
and on(uuid) dependency_track_project_info{active="true"}

Only include projects tagged with prod:

dependency_track_project_policy_violations{state="WARN",analysis!="APPROVED",analysis!="REJECTED",suppressed="false"} > 0
and on(uuid) dependency_track_project_info{active="true",tags=~".*,prod,.*"}

Or, join the tags label into the returned series. Filtering on active/tag could then happen in alert routes:

(dependency_track_project_policy_violations{state="WARN",analysis!="APPROVED",analysis!="REJECTED",suppressed="false"} > 0)
* on (uuid) group_left(tags,active) dependency_track_project_info