netdata/netdata

View on GitHub
src/collectors/python.d.plugin/ipfs/metadata.yaml

Summary

Maintainability
Test Coverage
plugin_name: python.d.plugin
modules:
  - meta:
      plugin_name: python.d.plugin
      module_name: ipfs
      monitored_instance:
        name: IPFS
        link: "https://ipfs.tech/"
        categories:
          - data-collection.storage-mount-points-and-filesystems
        icon_filename: "ipfs.svg"
      related_resources:
        integrations:
          list: []
      info_provided_to_referring_integrations:
        description: ""
      keywords: []
      most_popular: false
    overview:
      data_collection:
        metrics_description: "This collector monitors IPFS server metrics about its quality and performance."
        method_description: "It connects to an http endpoint of the IPFS server to collect the metrics"
      supported_platforms:
        include: []
        exclude: []
      multi_instance: true
      additional_permissions:
        description: ""
      default_behavior:
        auto_detection:
          description: "If the endpoint is accessible by the Agent, netdata will autodetect it"
        limits:
          description: |
            Calls to the following endpoints are disabled due to IPFS bugs:
            
            /api/v0/stats/repo (https://github.com/ipfs/go-ipfs/issues/3874)
            /api/v0/pin/ls (https://github.com/ipfs/go-ipfs/issues/7528)
        performance_impact:
          description: ""
    setup:
      prerequisites:
        list: []
      configuration:
        file:
          name: "python.d/ipfs.conf"
        options:
          description: |
            There are 2 sections:
            
            * Global variables
            * One or more JOBS that can define multiple different instances to monitor.
            
            The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
            
            Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
            
            Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
          folding:
            title: ""
            enabled: true
          list:
            - name: update_every
              description: Sets the default data collection frequency.
              default_value: 5
              required: false
            - name: priority
              description: Controls the order of charts at the netdata dashboard.
              default_value: 60000
              required: false
            - name: autodetection_retry
              description: Sets the job re-check interval in seconds.
              default_value: 0
              required: false
            - name: penalty
              description: Indicates whether to apply penalty to update_every in case of failures.
              default_value: yes
              required: false
            - name: name
              description: The JOB's name as it will appear at the dashboard (by default is the job_name)
              default_value: job_name
              required: false
            - name: url
              description: URL to the IPFS API
              default_value: no
              required: true
            - name: repoapi
              description: Collect repo metrics.
              default_value: no
              required: false
            - name: pinapi
              description: Set status of IPFS pinned object polling.
              default_value: no
              required: false
        examples:
          folding:
            enabled: true
            title: "Config"
          list:
            - name: Basic (default out-of-the-box)
              description: A basic example configuration, one job will run at a time. Autodetect mechanism uses it by default.
              folding:
                enabled: false
              config: |
                localhost:
                  name: 'local'
                  url: 'http://localhost:5001'
                  repoapi: no
                  pinapi: no
            - name: Multi-instance
              description: |
                > **Note**: When you define multiple jobs, their names must be unique.
                
                Collecting metrics from local and remote instances.
              config: |
                localhost:
                  name: 'local'
                  url: 'http://localhost:5001'
                  repoapi: no
                  pinapi: no
                
                remote_host:
                  name: 'remote'
                  url: 'http://192.0.2.1:5001'
                  repoapi: no
                  pinapi: no
    troubleshooting:
      problems:
        list: []
    alerts:
      - name: ipfs_datastore_usage
        link: https://github.com/netdata/netdata/blob/master/src/health/health.d/ipfs.conf
        metric: ipfs.repo_size
        info: IPFS datastore utilization
    metrics:
      folding:
        title: Metrics
        enabled: false
      description: ""
      availability: []
      scopes:
        - name: global
          description: "These metrics refer to the entire monitored application."
          labels: []
          metrics:
            - name: ipfs.bandwidth
              description: IPFS Bandwidth
              unit: "kilobits/s"
              chart_type: line
              dimensions:
                - name: in
                - name: out
            - name: ipfs.peers
              description: IPFS Peers
              unit: "peers"
              chart_type: line
              dimensions:
                - name: peers
            - name: ipfs.repo_size
              description: IPFS Repo Size
              unit: "GiB"
              chart_type: area
              dimensions:
                - name: avail
                - name: size
            - name: ipfs.repo_objects
              description: IPFS Repo Objects
              unit: "objects"
              chart_type: line
              dimensions:
                - name: objects
                - name: pinned
                - name: recursive_pins