firehol/netdata

View on GitHub
src/go/plugin/go.d/modules/ipfs/metadata.yaml

Summary

Maintainability
Test Coverage
plugin_name: go.d.plugin
modules:
  - meta:
      id: collector-go.d.plugin-ipfs
      plugin_name: go.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:
        - ipfs
        - filesystem
      most_popular: false
    overview:
      data_collection:
        metrics_description: "This collector monitors IPFS daemon health and network activity."
        method_description: |
          It uses [RPC API](https://docs.ipfs.tech/reference/kubo/rpc/) to collect metrics.

          Used endpoints:

          - [/api/v0/stats/bw](https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-stats-bw)
          - [/api/v0/swarm/peers](https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-swarm-peers)
          - [/api/v0/stats/repo](https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-stats-repo)
          - [/api/v0/pin/ls](https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-ls)
      supported_platforms:
        include: []
        exclude: []
      multi_instance: true
      additional_permissions:
        description: ""
      default_behavior:
        auto_detection:
          description: |
            By default, it detects IPFS instances running on localhost that are listening on port 5001.
        limits:
          description: ""
        performance_impact:
          description: |
            Calls to the following endpoints are disabled by default due to IPFS bugs:

            - /api/v0/stats/repo ([#7528](https://github.com/ipfs/go-ipfs/issues/7528)).
            - /api/v0/pin/ls ([#3874](https://github.com/ipfs/go-ipfs/issues/3874)).

            **Disabled by default** due to potential high CPU usage. Consider enabling only if necessary.
    setup:
      prerequisites:
        list: []
      configuration:
        file:
          name: go.d/ipfs.conf
        options:
          description: |
            The following options can be defined globally: update_every, autodetection_retry.
          folding:
            title: "Config options"
            enabled: true
          list:
            - name: update_every
              description: Data collection frequency.
              default_value: 1
              required: false
            - name: autodetection_retry
              description: Recheck interval in seconds. Zero means no recheck will be scheduled.
              default_value: 0
              required: false
            - name: repoapi
              description: Enables querying the [/api/v0/stats/repo](https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-repo-stat) endpoint for repository statistics.
              default_value: false
              required: false
            - name: pinapi
              description: Enables querying the [/api/v0/pin/ls](https://docs.ipfs.tech/reference/kubo/rpc/#api-v0-pin-ls) endpoint to retrieve a list of all pinned objects.
              default_value: false
              required: false
            - name: url
              description: Server URL.
              default_value: http://127.0.0.1:5001
              required: true
            - name: timeout
              description: HTTP request timeout.
              default_value: 1
              required: false
            - name: username
              description: Username for basic HTTP authentication.
              default_value: ""
              required: false
            - name: password
              description: Password for basic HTTP authentication.
              default_value: ""
              required: false
            - name: proxy_url
              description: Proxy URL.
              default_value: ""
              required: false
            - name: proxy_username
              description: Username for proxy basic HTTP authentication.
              default_value: ""
              required: false
            - name: proxy_password
              description: Password for proxy basic HTTP authentication.
              default_value: ""
              required: false
            - name: method
              description: HTTP request method.
              default_value: POST
              required: false
            - name: body
              description: HTTP request body.
              default_value: ""
              required: false
            - name: headers
              description: HTTP request headers.
              default_value: ""
              required: false
            - name: not_follow_redirects
              description: Redirect handling policy. Controls whether the client follows redirects.
              default_value: false
              required: false
            - name: tls_skip_verify
              description: Server certificate chain and hostname validation policy. Controls whether the client performs this check.
              default_value: false
              required: false
            - name: tls_ca
              description: Certification authority that the client uses when verifying the server's certificates.
              default_value: ""
              required: false
            - name: tls_cert
              description: Client TLS certificate.
              default_value: ""
              required: false
            - name: tls_key
              description: Client TLS key.
              default_value: ""
              required: false
        examples:
          folding:
            enabled: true
            title: "Config"
          list:
            - name: Basic
              description: A basic example configuration.
              folding:
                enabled: false
              config: |
                jobs:
                  - name: local
                    url: http://127.0.0.1:5001
            - name: Multi-instance
              description: |
                > **Note**: When you define multiple jobs, their names must be unique.

                Collecting metrics from local and remote instances.
              config: |
                jobs:
                  - name: local
                    url: http://127.0.0.1:5001

                  - name: remote
                    url: http://192.0.2.1:5001
    troubleshooting:
      problems:
        list: []
    alerts:
      - name: ipfs_datastore_usage
        link: https://github.com/netdata/netdata/blob/master/src/health/health.d/ipfs.conf
        metric: ipfs.datastore_space_utilization
        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: "bytes/s"
              chart_type: area
              dimensions:
                - name: in
                - name: out
            - name: ipfs.peers
              description: IPFS Peers
              unit: "peers"
              chart_type: line
              dimensions:
                - name: peers
            - name: ipfs.datastore_space_utilization
              description: IPFS Datastore Space Utilization
              unit: "percent"
              chart_type: area
              dimensions:
                - name: used
            - name: ipfs.repo_size
              description: IPFS Repo Size
              unit: "bytes"
              chart_type: line
              dimensions:
                - name: size
            - name: ipfs.repo_objects
              description: IPFS Repo Objects
              unit: "objects"
              chart_type: line
              dimensions:
                - name: objects
            - name: ipfs.repo_pinned_objects
              description: IPFS Repo Pinned Objects
              unit: "objects"
              chart_type: line
              dimensions:
                - name: pinned
                - name: recursive_pins