Skip to content

Edge Cloud

Dimitris Lioprasitis edited this page Feb 9, 2021 · 2 revisions

Requirements

On Edge node Prometheus server and the two exporters need to be installed.

Node Exporter


Node exporter collects OS metrics from the underlying Edge Cloud machine.
- Install Node exporter on Edge node:
https://prometheus.io/docs/guides/node-exporter/

Amarisoft Exporter


Prometheus exporter for metrics provided by Amarisoft RAN socket API, written in `Go`. The exporter needs to be placed on a network accessible from Prometheus server and Amarisoft.

Installation and Usage

Download and extract the latest executable for your architecture and edit the config.yml.
Binaries availlable for amd64, arm64 and 386 linux platforms.

Example:

  • Extract binary:

tar -xf amari-exporter-linux-amd64.tar.gz
cd amari-exporter-linux-amd64

  • Specify the port exporter is running on Edge node, the interval to query Amarisoft API and Amarisoft url
    config.yml
amari_url: ws://192.168.137.10:9001/
port: 3333
interval: 10s
  • Pass the config.yml as flag to binary

./amarisoft-exporter-linux-amd64 -config config.yml

  • Amarisoft exporter is now running, you can verify metrics show up

curl http://localhost:3333/metrics

Prometheus server


Prometheus server scrapes both exporters (targets), performs filtering on collected metrics and publishes to remote Influx DB.
  • Install Prometheus server either as standalone or using Docker image

  • Configure targets to scrape, remote write to Influx DB and metrics filtering using a config.yml:

# Remote write configuration for Influx
remote_write:
  - url: "http://{influx_host}:{port}/api/v1/prom/write?db={db}&u={user}&p={pass}"
scrape_configs:
  - job_name: ‘amari exporter’
    scrape_interval: 15s
    static_configs:
      - targets: ["{url}:{port}"]
  - job_name: 'node_exporter_dellEdge'
    scrape_interval: 15s
    static_configs:
      - targets: ["{url}:{port}"]
    metric_relabel_configs:
      - source_labels: [__name__]
        regex: 'node_cpu_seconds_total|node_memory_Buffers_bytes|node_memory_Cached_bytes|node_memory_Mem.+|node_memory_Swap.+|node_network_receive_bytes_total|node_network_transmit_bytes_total|node_filesyste$
        action: keep

Example:

prometheus.yml

# Remote write configuration for Influx
remote_write:
  - url: "http://10.10.x.x:8086/api/v1/prom/write?db=prometheus_db&u=user&p=passwd"
scrape_configs:
  - job_name: 'amari_exporter'
    scrape_interval: 15s
    static_configs:
      - targets: ["localhost:3333"]
  - job_name: 'node_exporter_dellEdge'
    scrape_interval: 15s
    static_configs:
      - targets: ["localhost:9100"]
    metric_relabel_configs:
      - source_labels: [__name__]
        regex: 'node_cpu_seconds_total|node_memory_Buffers_bytes|node_memory_Cached_bytes|node_memory_Mem.+|node_memory_Swap.+|node_network_receive_bytes_total|node_network_transmit_bytes_total|node_filesyste$
        action: keep
Clone this wiki locally