Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sapcc/arista-eapi-exporter
Arista exporter for Prometheus using the eAPI
https://github.com/sapcc/arista-eapi-exporter
arista eos prometheus-exporter
Last synced: 11 days ago
JSON representation
Arista exporter for Prometheus using the eAPI
- Host: GitHub
- URL: https://github.com/sapcc/arista-eapi-exporter
- Owner: sapcc
- License: apache-2.0
- Created: 2018-08-15T12:21:32.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2024-07-23T09:45:04.000Z (4 months ago)
- Last Synced: 2024-07-23T11:51:53.735Z (4 months ago)
- Topics: arista, eos, prometheus-exporter
- Language: Python
- Homepage:
- Size: 43 KB
- Stars: 8
- Watchers: 46
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# arista-eapi-exporter
This is a Prometheus Exporter for extracting metrics from an Arista Switch using the Arista's eAPI and the Python Client for eAPI [pyeapi](https://pypi.org/project/pyeapi/).
The current implementation retrieves the memory usage data via `show hardware capacity` command and returns the table rows as a Gauge metric using some of the switches information as labels like the serial, the model, the firmware version and the hostname (arista_tcam).
It also returns a metric (arista_up) indicating if the switch was reachable or not and one returning the response time of the show version call (arista_response).Future implementations could easily also gather other data from the switches.
The hostname of the switch has to be passed as **target parameter** in the http call.
## Example Call
if you are logged in to the POD running the exporter you can call
```bash
curl http://localhost:9200/arista?target=eu-de-1-asw202-bm001.cc.eu-de-1.cloud.sap
```## Prerequisites and Installation
The exporter was written for Python 3.6 or newer. To install all modules needed you have to run the following command:
```bash
pip3 install --no-cache-dir -r requirements.txt
```There is also a docker file available to create a docker container to run the exporter.
## The config.yml file
* The **listen_port** is providing the port on which the exporter is waiting to receive calls.
* The credentials for login to the switches can either be added to the config.yaml file or passed via environment variables `ARISTA_USERNAME` and `ARISTA_PASSWORD`. The environment overwrites the settings in the config file.
* The **loglevel** can be specified in the config file. If omitted the default level is `INFO`.
* The **timeout** parameter specifies the amount of time to wait for an answer from the switch. It can be defined in config.yaml ir passed via environment variable `TIMEOUT`. The environment overwrites the settings in the config file.
* With the **exclude** parameter you can filter the output of the exporter. In the following example some of the tables are excluded.
* The **job** parameter specifies the Prometheus job that will be passed as label.
### Example of a config file
```yaml
listen_port: 9200
username:
password:
loglevel:
timeout: 20
exclude: ['NextHop', 'LPM', 'Host', 'MAC', 'VFP']
job: arista
```