All Projects → giantswarm → starboard-exporter

giantswarm / starboard-exporter

Licence: Apache-2.0 License
A standalone exporter for vulnerability reports and other CRs created by Starboard.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Mustache
554 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to starboard-exporter

Ssl exporter
Exports Prometheus metrics for SSL certificates
Stars: ✭ 211 (+859.09%)
Mutual labels:  prometheus, prometheus-exporter
nvidia gpu exporter
Nvidia GPU exporter for prometheus using nvidia-smi binary
Stars: ✭ 85 (+286.36%)
Mutual labels:  prometheus, prometheus-exporter
Github Exporter
Prometheus exporter for github metrics
Stars: ✭ 231 (+950%)
Mutual labels:  prometheus, prometheus-exporter
Sql exporter
Flexible SQL Exporter for Prometheus
Stars: ✭ 194 (+781.82%)
Mutual labels:  prometheus, prometheus-exporter
postgres exporter
Postgres exporter
Stars: ✭ 14 (-36.36%)
Mutual labels:  prometheus, prometheus-exporter
Exporter exporter
A reverse proxy designed for Prometheus exporters
Stars: ✭ 194 (+781.82%)
Mutual labels:  prometheus, prometheus-exporter
Php Fpm exporter
A prometheus exporter for PHP-FPM.
Stars: ✭ 251 (+1040.91%)
Mutual labels:  prometheus, prometheus-exporter
Prometheus Pve Exporter
Exposes information gathered from Proxmox VE cluster for use by the Prometheus monitoring system
Stars: ✭ 171 (+677.27%)
Mutual labels:  prometheus, prometheus-exporter
freeradius exporter
FreeRADIUS Prometheus Exporter
Stars: ✭ 25 (+13.64%)
Mutual labels:  prometheus, prometheus-exporter
pm2-prometheus-exporter
🐰 🐰 pm2 prometheus exporter
Stars: ✭ 90 (+309.09%)
Mutual labels:  prometheus, prometheus-exporter
wildfly exporter
A prometheus exporter for Jboss Wildfly
Stars: ✭ 19 (-13.64%)
Mutual labels:  prometheus, prometheus-exporter
chaos-exporter
Prometheus Exporter for Litmus Chaos Metrics
Stars: ✭ 25 (+13.64%)
Mutual labels:  prometheus, prometheus-exporter
Blackbox exporter
Blackbox prober exporter
Stars: ✭ 2,633 (+11868.18%)
Mutual labels:  prometheus, prometheus-exporter
Oracledb exporter
Prometheus Oracle database exporter.
Stars: ✭ 209 (+850%)
Mutual labels:  prometheus, prometheus-exporter
Prometheus Es Exporter
Prometheus Elasticsearch Exporter
Stars: ✭ 184 (+736.36%)
Mutual labels:  prometheus, prometheus-exporter
Mikrotik Exporter
prometheus mikrotik device(s) exporter
Stars: ✭ 248 (+1027.27%)
Mutual labels:  prometheus, prometheus-exporter
Jmx exporter
A process for exposing JMX Beans via HTTP for Prometheus consumption
Stars: ✭ 2,134 (+9600%)
Mutual labels:  prometheus, prometheus-exporter
Query Exporter
Export Prometheus metrics from SQL queries
Stars: ✭ 166 (+654.55%)
Mutual labels:  prometheus, prometheus-exporter
hcloud-pricing-exporter
A prometheus exporter for the current pricing and costs of your HCloud account
Stars: ✭ 19 (-13.64%)
Mutual labels:  prometheus, prometheus-exporter
hetzner exporter
Prometheus exporter for Hetzner
Stars: ✭ 16 (-27.27%)
Mutual labels:  prometheus, prometheus-exporter

CircleCI

starboard-exporter

Exposes Prometheus metrics from Starboard's VulnerabilityReport custom resources (CRs).

Metrics

This exporter exposes two types of metrics:

Summary

A summary series exposes the count of CVEs of each severity reported in a given VulnerabilityReport. For example:

starboard_exporter_vulnerabilityreport_image_vulnerability_severity_count{
    image_digest="",
    image_namespace="demo",
    image_registry="quay.io",
    image_repository="giantswarm/starboard-operator",
    image_tag="0.11.0",
    report_name="replicaset-starboard-app-6894945788-starboard-app",
    severity="MEDIUM"
    } 4

This indicates that the giantswarm/starboard-operator image in the demo namespace contains 4 medium-severity vulnerabilities.

Detail / Vulnerability

A detail or vulnerability series exposes fields from each instance of an Aqua Vulnerability. The value of the metric is the Score for the vulnerability. For example:

starboard_exporter_vulnerabilityreport_image_vulnerability{
    fixed_resource_version="1.1.1l-r0",
    image_digest="",
    image_namespace="demo",
    image_registry="quay.io",
    image_repository="giantswarm/starboard-operator",
    image_tag="0.11.0",
    installed_resource_version="1.1.1k-r0",
    report_name="replicaset-starboard-app-6894945788-starboard-app",
    severity="HIGH",
    vulnerability_id="CVE-2021-3712",
    vulnerability_link="https://avd.aquasec.com/nvd/cve-2021-3712",
    vulnerability_title="openssl: Read buffer overruns processing ASN.1 strings",vulnerable_resource_name="libssl1.1"
    } 7.4

This indicates that the vulnerability with the id CVE-2021-3712 was found in the giantswarm/starboard-operator image in the demo namespace, and it has a CVSS 3.x score of 7.4.

An additional series would be exposed for every combination of those labels.

A Note on Cardinality

For some use cases, it is helpful to export additional fields from VulnerabilityReport CRs. However, because many fields contain unbounded arbitrary data, including them in Prometheus metrics can lead to extremely high cardinality. This can drastically impact Prometheus performance. For this reason, we only expose summary data by default and allow users to opt-in to higher-cardinality fields.

One vulnerabilityreport per deployment

By default, Starboard generates a VulnerabilityReport per ReplicaSet in a Deployment. This can cause confusion because vulnerabilities are still reported for Pods which no longer exist, i.e. you fix a CVE in your latest Deployment but the number of CVEs per Deployment stays the same in your metrics.

As of Starboard v0.14.0, the environment variable OPERATOR_VULNERABILITY_SCANNER_SCAN_ONLY_CURRENT_REVISIONS can be enabled to only generate a VulnerabilityReport from the latest ReplicaSet in the Deployment.

Check the Starboard configuration docs for more information.

Customization

Summary metrics of the format described above are always enabled.

To enable an additional detail series per Vulnerability, use the --target-labels flag to specify which labels should be exposed. For example:

# Expose only select image and CVE fields.
--target-labels=image_namespace,image_repository,image_tag,vulnerability_id

# Run with (almost) all fields exposed as labels, if you're feeling really wild.
--target-labels=all

Target labels can also be set via Helm values:

exporter:
  vulnerabilityReports:
    targetLabels:
      - image_namespace
      - image_repository
      - image_tag
      - vulnerability_id
      - ...

Helm

How to install the starboard-exporter using helm:

helm repo add giantswarm https://giantswarm.github.io/giantswarm-catalog
helm repo update
helm upgrade -i starboard-exporter --namespace <starboard namespace> giantswarm/starboard-exporter
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].