---
logging:
  version: 1
  formatters:
    console_stdout:
      format: '%(asctime)s - %(name)s - %(message)s'
    console_stderr:
      format: '%(message)s'
    prom:
      format: '%(message)s'
  handlers:
    console_stdout:
      class: logging.StreamHandler
      level: INFO
      formatter: console_stdout
      stream: ext://sys.stdout
    console_stderr:
      class: logging.StreamHandler
      level: ERROR
      formatter: console_stderr
      stream: ext://sys.stderr
    prom:
      class: logging.handlers.RotatingFileHandler
      level: INFO
      formatter: prom
      filename: /tmp/metric.prom
      mode: w
  loggers:
    prom:
      handlers: [prom]
      level: INFO
      propagate: False
  root:
    level: INFO
    handlers: [console_stdout, console_stderr]
scheduler:
  duration: 1
programs:
  - name: bundle_vpp
    metrics:
      counter:
        - name: calls
          documentation: Number of calls total
          labelnames:
            - name
            - state
            - thread_name
            - thread_id
            - thread_lcore
        - name: vectors
          documentation: Number of vectors total
          labelnames:
            - name
            - state
            - thread_name
            - thread_id
            - thread_lcore
        - name: suspends
          documentation: Number of suspends total
          labelnames:
            - name
            - state
            - thread_name
            - thread_id
            - thread_lcore
        - name: clocks
          documentation: Number of clocks total
          labelnames:
            - name
            - state
            - thread_name
            - thread_id
            - thread_lcore
        - name: vectors_calls
          documentation: Number of vectors per call
          labelnames:
            - name
            - state
            - thread_name
            - thread_id
            - thread_lcore
    code: |
      show runtime
  - name: bundle_vpp
    metrics:
      counter:
        - name: rx_packets
          documentation: Number of received packets for interface
          labelnames:
            - name
            - index
        - name: rx_bytes
          documentation: Number of received bytes for interface
          labelnames:
            - name
            - index
        - name: rx_error
          documentation: Number of errors on interface
          labelnames:
            - name
            - index
        - name: tx_packets
          documentation: Number of transitted packets for interface
          labelnames:
            - name
            - index
        - name: tx_bytes
          documentation: Number of transitted bytes for interface
          labelnames:
            - name
            - index
        - name: tx_error
          documentation: Number of errors on interface
          labelnames:
            - name
            - index
        - name: drops
          documentation: Number of dropped packets for interface
          labelnames:
            - name
            - index
        - name: punt
          documentation: Number of punted packets for interface
          labelnames:
            - name
            - index
        - name: ip4
          documentation: Number of IPv4 packets for interface
          labelnames:
            - name
            - index
        - name: ip6
          documentation: Number of IPv6 packets for interface
          labelnames:
            - name
            - index
        - name: mpls
          documentation: Number of MPLS packets for interface
          labelnames:
            - name
            - index
        - name: rx_no_buf
          documentation: Number of out of buffer RX packets on interface
          labelnames:
            - name
            - index
        - name: rx_miss
          documentation: Number of missed RX packets on interface
          labelnames:
            - name
            - index
    code: |
      show interface
  - name: bundle_vpp
    metrics:
      gauge:
        - name: rx_frames
          documentation: Number of RX frames for interface
          labelnames:
            - name
            - index
        - name: rx_bytes
          documentation: Number of RX bytes for interface
          labelnames:
            - name
            - index
        - name: tx_frames
          documentation: Number of TX frames for interface
          labelnames:
            - name
            - index
        - name: tx_bytes
          documentation: Number of TX bytes for interface
          labelnames:
            - name
            - index
        - name: rx_missed
          documentation: Number of missed RX packets on interface
          labelnames:
            - name
            - index
        - name: tx_missed
          documentation: Number of missed TX packets on interface
          labelnames:
            - name
            - index
    code: |
      show hardware verbose
  - name: bundle_vpp
    metrics:
      counter:
        - name: node_counter
          documentation: Node counter
          labelnames:
            - name
            - reason
            - severity
            - thread_name
            - thread_id
    code: |
      show node counters verbose