master
go 105 lines 2.35 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package ipfs
4
5 import (
6 "github.com/netdata/netdata/go/plugins/plugin/framework/collectorapi"
7 )
8
9 const (
10 prioBandwidth = collectorapi.Priority + iota
11 prioSwarmPeers
12 prioDatastoreSpaceUtilization
13 prioRepoSize
14 prioRepoObj
15 prioRepoPinnedObj
16 )
17
18 var charts = collectorapi.Charts{
19 bandwidthChart.Copy(),
20 peersChart.Copy(),
21 datastoreUtilizationChart.Copy(),
22 repoSizeChart.Copy(),
23 repoObjChart.Copy(),
24 repoPinnedObjChart.Copy(),
25 }
26
27 var (
28 bandwidthChart = collectorapi.Chart{
29 ID: "bandwidth",
30 Title: "IPFS Bandwidth",
31 Units: "bytes/s",
32 Fam: "bandwidth",
33 Ctx: "ipfs.bandwidth",
34 Type: collectorapi.Area,
35 Priority: prioBandwidth,
36 Dims: collectorapi.Dims{
37 {ID: "in", Algo: collectorapi.Incremental},
38 {ID: "out", Mul: -1, Algo: collectorapi.Incremental},
39 },
40 }
41
42 peersChart = collectorapi.Chart{
43 ID: "peers",
44 Title: "IPFS Peers",
45 Units: "peers",
46 Fam: "peers",
47 Ctx: "ipfs.peers",
48 Type: collectorapi.Line,
49 Priority: prioSwarmPeers,
50 Dims: collectorapi.Dims{
51 {ID: "peers"},
52 },
53 }
54
55 datastoreUtilizationChart = collectorapi.Chart{
56 ID: "datastore_space_utilization",
57 Title: "IPFS Datastore Space Utilization",
58 Units: "percent",
59 Fam: "size",
60 Ctx: "ipfs.datastore_space_utilization",
61 Type: collectorapi.Area,
62 Priority: prioDatastoreSpaceUtilization,
63 Dims: collectorapi.Dims{
64 {ID: "used_percent", Name: "used"},
65 },
66 }
67 repoSizeChart = collectorapi.Chart{
68 ID: "repo_size",
69 Title: "IPFS Repo Size",
70 Units: "bytes",
71 Fam: "size",
72 Ctx: "ipfs.repo_size",
73 Type: collectorapi.Line,
74 Priority: prioRepoSize,
75 Dims: collectorapi.Dims{
76 {ID: "size"},
77 },
78 }
79
80 repoObjChart = collectorapi.Chart{
81 ID: "repo_objects",
82 Title: "IPFS Repo Objects",
83 Units: "objects",
84 Fam: "objects",
85 Ctx: "ipfs.repo_objects",
86 Type: collectorapi.Line,
87 Priority: prioRepoObj,
88 Dims: collectorapi.Dims{
89 {ID: "objects"},
90 },
91 }
92 repoPinnedObjChart = collectorapi.Chart{
93 ID: "repo_pinned_objects",
94 Title: "IPFS Repo Pinned Objects",
95 Units: "objects",
96 Fam: "objects",
97 Ctx: "ipfs.repo_pinned_objects",
98 Type: collectorapi.Line,
99 Priority: prioRepoPinnedObj,
100 Dims: collectorapi.Dims{
101 {ID: "pinned"},
102 {ID: "recursive_pins"},
103 },
104 }
105 )