Mist Poller

Overview

The Mist Poller microservice is created to poll topology data via MIST Rest API. It collects data at regular intervals, normalizes it and writes it to topics from which graph-sink will ingest the data. Topology is polled every 1 hour. It also supports discovering devices via discovery service.

Prerequisites

  1. A microservices cluster must be setup. Refer to Microservice Cluster Setup.

  2. Apache Pulsar must be installed. Refer to Apache Pulsar microservice.

  3. Graph sink microservice must be installed

  4. Discovery service microservice must be installed to discover devices via discovery service:

  5. MIST API Url, Cloud, and list of organization IDs should be configured.

  6. A Kubernetes secret should be created with the API access token as base64 encoded string.

Secret command

a1k create secret generic mist-api-token-secret --from-literal=mist-api-token=base64EncodedToken -n <namespace>

Setup

su - assure1
export NAMESPACE=a1-zone1-pri
export WEBFQDN=<Primary Presentation Web FQDN> 
a1helm install mist-poller assure1/mist-poller -n $NAMESPACE --set global.imageRegistry=$WEBFQDN

Default Configuration

Name Value Possible Values Notes
LOG_LEVEL INFO FATAL, ERROR, WARN, INFO, DEBUG Logging level used by application.
STREAM_OUTPUT_GRAPH persistent://assure1/graph/sink Text, 255 characters Graph sink topic path.
TLS_CA "/certs/a1/Assure1CA.crt" Text, 255 characters TLS CA certificate.
TLS_CERT "/certs/a1/User-api.crt" Text, 255 characters TLS user certificate.
TLS_KEY "/certs/a1/User-api.key" Text, 255 characters TLS certificate key.
TOPOLOGY_INTERVAL "1" Integer Time in minutes between polls of the topology data.
PULSAR_MIST_DISCOVERY_OVERRIDE "" Text, 255 characters Mist discovery request pulsar topic.
PULSAR_MIST_DISCOVERY_CALLBACK_OVERRIDE "" Text, 255 characters Mist discovery callback request pulsar topic.
PROXY_URL "" Text, 255 characters Mist Proxy URL.
API_QUERY_LIMIT "" Integer The number of limited queries made to the API.
STREAM_INPUT "" Text, 255 characters Mist API URL.
MIST_CLOUD "" Text, 255 characters Mist cloud name.
MIST_ORGANIZATIONS "" Text, 255 characters Comma seperated list of organization IDs
TOPOLOGY_POLLING_INTERVAL "3600" Text, 255 characters Topology polling interval in seconds
MIST_SECRET_NAME_OVERRIDE "" Text, 255 characters Optional - Custom secret name
MIST_SECRET_FILE_OVERRIDE "" Text, 255 characters Optional - Custom secret file name

Configurations can be changed by passing the values to the a1helm install prefixed with the configData parent key.

Example of setting the log level to DEBUG

a1helm install ... --set configData.LOG_LEVEL=DEBUG

Microservice self-metrics

The Mist Poller microservice exposes the following self-metrics to Prometheus.

Metric Name Type Description
processing_time_of_discovery_request Gauge Time taken to poll and for hierarchical topology data per request
number_of_devices_discovered_per_request Gauge Number of devices discovered per discovery request
polling_time_of_availability_in_seconds Gauge Time taken to poll, process and send all topology data in seconds
topology_total_api_calls Gauge Number of API calls made to collect topology
discovery_request_total_api_calls Gauge Number of API calls made to collect data per discovery request