Skip to content

mtulio/azion-exporter

Repository files navigation

azion-exporter

Azion metrics exporter for Prometheus.

The Azion Exporter consumes data from Azion Analytics API using internal GO library exposing it for Prometheus.

BUILD

make build

The binary will be created on ./bin dir.

ARGUMENTS

REQUIRED

-azion.email : Azion's Account Email

-azion.password : Azion's Account Password

OPTIONAL

-metrics.filter : List of metrics separated by comma

  • Supported metrics are:

    "cd_requests_saved" "cd_requests_missed" "cd_bandwidth_saved" "cd_bandwidth_missed" "cd_data_transferred_saved" "cd_data_transferred_missed" "cd_status_code_2xx" "cd_status_code_200" "cd_status_code_204" "cd_status_code_206" "cd_status_code_3xx" "cd_status_code_301" "cd_status_code_302" "cd_status_code_304" "cd_status_code_4xx" "cd_status_code_400" "cd_status_code_403" "cd_status_code_404" "cd_status_code_5xx" "cd_status_code_500" "cd_status_code_503" "cd_status_code_503"

USAGE

Show Azion metrics from Analytics:

./bin/azion-exporter -azion.email=my@email.com -azion.password=myPass

Sample output for $ curl localhost:9801/metrics:

# HELP azion_cd_data_transferred_mb Azion Analytics Content Delivery Data Transferred in MB
# TYPE azion_cd_data_transferred_mb gauge
azion_cd_data_transferred_mb{type="missed"} 944.02355
azion_cd_data_transferred_mb{type="saved"} 1958.173775
# HELP azion_cd_requests_count Azion Analytics Content Delivery Requests Count
# TYPE azion_cd_requests_count gauge
azion_cd_requests_count{type="missed"} 21497.0
azion_cd_requests_count{type="saved"} 66719.0
# HELP azion_cd_status_code_total Azion Analytics Content Delivery Status Code 5xx Total
# TYPE azion_cd_status_code_total gauge
azion_cd_status_code_total{code="200"} 75114.0
azion_cd_status_code_total{code="204"} 0.0
azion_cd_status_code_total{code="206"} 85.0
azion_cd_status_code_total{code="2xx"} 8.0
azion_cd_status_code_total{code="301"} 1475.0
azion_cd_status_code_total{code="302"} 4.0
azion_cd_status_code_total{code="304"} 9426.0
azion_cd_status_code_total{code="3xx"} 1.0
azion_cd_status_code_total{code="400"} 27.0
azion_cd_status_code_total{code="403"} 145.0
azion_cd_status_code_total{code="404"} 1881.0
azion_cd_status_code_total{code="4xx"} 23.0
azion_cd_status_code_total{code="500"} 0.0
azion_cd_status_code_total{code="503"} 1.0
azion_cd_status_code_total{code="5xx"} 20.0
# HELP azion_scrape_collector_duration_seconds azion_exporter: Duration of a collector scrape.
# TYPE azion_scrape_collector_duration_seconds gauge
azion_scrape_collector_duration_seconds{collector="analytics"} 6.8305e-05
# HELP azion_scrape_collector_success azion_exporter: Whether a collector succeeded.
# TYPE azion_scrape_collector_success gauge
azion_scrape_collector_success{collector="analytics"} 1.0

USAGE IN DOCKER

Show Azion metrics running in docker

docker run -p 9801:9801 -id mtulio/azion-exporter:latest \
    -azion.email=my@email.com -azion.password=myPass
  • Docker Compose definition
# Azion exporter - https://github.com/mtulio/azion-exporter
  azion:
    image: mtulio/azion-exporter:v0.1.1
    command:
        - -azion.email=my@email.com
        - -azion.password=myPass
    ports:
      - 9801:9801
    networks:
      - net
    deploy:
      resources:
        limits:
          cpus: "0.2"
          memory: 256M
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9801/"]
      interval: 5s
      timeout: 2s
      retries: 3

CONTRIBUTOR

You are welcome. =)

Some issues that we need you help:

  • Writing tests
  • Improving the Documentation
  • Split the API Library to an external repo
  • Improve CLI options to enable metrics dynamically
  • Open an issue

[...]

Contribution guidelines:

  • See License
  • Fork me
  • Open a PR with enhancements, bugfixes, etc
  • Request review from collaborators