Here is an overview of how you can deploy Promitor.

For more information about advanced configuration, read our documentation here.

Docker

❯ docker run -d -p 8999:80 --name promitor-agent-scraper \
                           --env PROMITOR_AUTH_APPID='<azure-ad-app-id>' \
                           --env-file C:/Promitor/az-mon-auth.creds \
                           --volume C:/Promitor/metrics-declaration.yaml:/config/metrics-declaration.yaml \ 
                           tomkerkhove/promitor-agent-scraper:1.0.0

Kubernetes

We provide a Helm Chart which deploys all the required infrastructure on your Kubernetes cluster.

Getting the Helm Chart

Install the Promitor Chart repository:

❯ helm repo add promitor https://promitor.azurecr.io/helm/v1/repo

If all goes well you should be able to list all Promitor charts:

❯ helm search promitor/
NAME                            CHART VERSION   APP VERSION      DESCRIPTION
promitor/promitor-agent-scraper 0.1.0           1.0.0  A Helm chart to deploy Promitor, an Azure Monitor scraper...

Using our Helm Chart

To use this, you will need to provide parameters via --set or --values. Included here are the values that correspond with the local environment variables. In addition to these, you will need a metric declaration file as described in Metric Declaration.

azureMetadata:
  tenantId: "<azure-tenant-id>"
  subscriptionId: "<azure-subscription-id>"

runtime:
  prometheus:
    scrapeEndpointPath: /metrics
    enableMetricTimestamps: True
  telemetry:
    applicationInsights:
      enabled: True
      key: "<azure-app-insights-key>"

metrics:
  - name: promitor_demo_servicebusqueue_queue_size
    description: "Amount of active messages of the 'orders' queue (determined with ServiceBusQueue provider)"
    resourceType: ServiceBusQueue
    namespace: promitor-messaging
    queueName: orders
    azureMetricConfiguration:
      metricName: ActiveMessages
      aggregation:
        type: Average

Check the full values file to see all configurable values.

If you have a metric-declaration.yaml file, you can create a basic deployment with this command:

❯ helm install --name promitor-agent-scraper promitor/promitor-agent-scraper \
               --set azureAuthentication.appId='<azure-ad-app-id>' \
               --set azureAuthentication.appKey='<azure-ad-app-key>' \
               --values /path/to/helm-configuration.yaml

Image Tagging Strategy

Depending on your scenario you might need a different update cadence for Docker dependencies.

We provide a few options by offering multiple Docker tags:

Image Tagging Strategy

You can also pin to a specific digest of an image to ensure that you are running the same image across your infrastructure. However, you will not receive security patches unless you use a tool like Renovate to keep them up-to-date.

← back