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
-
A microservices cluster must be setup. Refer to Microservice Cluster Setup.
-
Apache Pulsar must be installed. Refer to Apache Pulsar microservice.
-
Graph sink microservice must be installed
-
Discovery service microservice must be installed to discover devices via discovery service:
-
MIST API Url, Cloud, and list of organization IDs should be configured.
-
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 |