Prometheus Metrics Intro
Prometheus Metrics Intro
Get started with Zilla by deploying our Docker image. Before proceeding, you should have Docker installed.
Prometheus Metrics
Running this Zilla sample will collect basic metrics for an http service.
zilla.yaml
name: Metrics-example
telemetry:
  # Desired metrics to track
  metrics:
    - http.request.size
    - http.response.size
    - stream.opens.sent
    - stream.closes.sent
  # Prometheus endpoint definition
  exporters:
    prometheus_metric_exporter:
      type: prometheus
      options:
        endpoints:
          - scheme: http
            path: /metrics
            port: 7190
# Sample HTTP Echo service
bindings:
  north_tcp_server:
    type: tcp
    kind: server
    options:
      host: 0.0.0.0
      port: 7114
    telemetry:
      metrics:
        - stream.*
    exit: north_http_server
  north_http_server:
    type: http
    kind: server
    routes:
      - when:
          - headers:
              :scheme: http
              :authority: localhost:7114
        exit: north_echo_server
    telemetry:
      metrics:
        - http.*
  north_echo_server:
    type: echo
    kind: server
Run Zilla with telemetry
Run the Zilla docker image as a daemon with the zilla.yaml file volume mounted.
docker run -d --pull=always -v ./zilla.yaml:/etc/zilla/zilla.yaml \
--name zilla-sample -p 7114:7114 -p 7190:7190 \
ghcr.io/aklivity/zilla:latest \
start -v;
Send an HTTP POST
curl -d "Hello, world" -H "Content-Type: text/plain" -X "POST" http://localhost:7114/;
Hello, world
View Metrics
Go to http://localhost:7190/metrtics to see the collected data or run the below curl command.
curl http://localhost:7190/metrics;
# TYPE stream_opens_sent_total counter
stream_opens_sent_total{namespace="Metrics-example",binding="tcp_server"} 2
# HELP stream_closes_sent_total Number of closed sent streams
stream_closes_sent_total{namespace="Metrics-example",binding="tcp_server"} 2
# HELP http_request_size_bytes HTTP request content length
...
http_request_size_bytes_sum{namespace="Metrics-example",binding="http_server"} 30
# HELP http_response_size_bytes HTTP response content length
...
http_response_size_bytes_sum{namespace="Metrics-example",binding="http_server"} 30
Remove the running container
docker rm -f zilla-sample;
Going Deeper
Try out the other Zilla examples.

