master
json 213 lines 7.07 KB
Raw
1 {
2 "status": 200,
3 "type": "topology",
4 "has_history": false,
5 "update_every": 10,
6 "data": {
7 "schema_version": "netdata.topology.v1",
8 "producer": {
9 "source": "snmp-l2",
10 "instance": "sample-fabric",
11 "node_id": "poller-node",
12 "machine_guid": "poller-machine",
13 "agent_version": "test",
14 "plugin": "go.d.plugin",
15 "capabilities": ["topology-v1"]
16 },
17 "collected_at": "2026-05-09T00:00:00Z",
18 "view": {
19 "id": "l2-fabric",
20 "scope": "snmp_device",
21 "mode": "detailed",
22 "group_by": ["snmp_device"]
23 },
24 "dictionaries": {
25 "strings": [
26 "snmp_device",
27 "snmp_interface",
28 "switch-a",
29 "switch-b",
30 "if-a-1",
31 "if-b-1",
32 "l2_adjacency",
33 "lldp",
34 "observed_bidirectional",
35 "up",
36 "if_inventory",
37 "if_traffic"
38 ]
39 },
40 "types": {
41 "actor_types": {
42 "snmp_device": {
43 "layer": "network",
44 "identity": ["device_id"],
45 "merge_identity": ["device_id"],
46 "aggregation_scopes": ["snmp_device"]
47 },
48 "snmp_interface": {
49 "layer": "network",
50 "identity": ["device_id", "if_index"],
51 "merge_identity": ["device_id", "if_index"],
52 "parent_identity": ["device_id"],
53 "aggregation_scopes": ["snmp_interface"]
54 }
55 },
56 "link_types": {
57 "l2_adjacency": {
58 "orientation": "observed_bidirectional",
59 "direction_role": "observation",
60 "aggregation": {
61 "direction": "canonicalize_unordered",
62 "evidence": "append"
63 },
64 "evidence_types": ["snmp_l2_observation"],
65 "overlay_templates": ["if_traffic"]
66 }
67 },
68 "evidence_types": {
69 "snmp_l2_observation": {
70 "link_type": "l2_adjacency",
71 "role": "observation_evidence",
72 "match_columns": ["local_if", "remote_if", "protocol"],
73 "columns": [
74 {"id": "link", "type": "link_ref", "role": "reference"},
75 {"id": "local_if", "type": "actor_ref", "role": "reference"},
76 {"id": "remote_if", "type": "actor_ref", "role": "reference"},
77 {"id": "protocol", "type": "string_ref", "dictionary": "strings", "role": "group_key"},
78 {"id": "observation", "type": "string_ref", "dictionary": "strings"}
79 ]
80 }
81 },
82 "table_types": {
83 "if_inventory": {
84 "role": "actor_inventory",
85 "owner": "actor",
86 "aggregation": "set",
87 "columns": [
88 {"id": "actor", "type": "actor_ref", "role": "reference"},
89 {"id": "if_name", "type": "string_ref", "dictionary": "strings"},
90 {"id": "if_index", "type": "uint"},
91 {"id": "oper_status", "type": "string_ref", "dictionary": "strings"},
92 {"id": "speed_bps", "type": "uint", "unit": "bit/s", "aggregation": "max"}
93 ]
94 }
95 },
96 "overlay_templates": {
97 "if_traffic": {
98 "provider": "netdata.metrics",
99 "contexts": ["net.net"],
100 "dimensions": ["received", "sent"],
101 "selector_params": ["node_id", "if_name"],
102 "merge": {
103 "refs": "set",
104 "values": "sum"
105 }
106 }
107 },
108 "aggregation_scopes": {
109 "snmp_device": {"columns": ["device_id"], "evidence_policy": "preserve"},
110 "snmp_interface": {"columns": ["device_id", "if_index"], "evidence_policy": "preserve"}
111 }
112 },
113 "actors": {
114 "rows": 4,
115 "columns": [
116 {"id": "type", "type": "string_ref", "dictionary": "strings"},
117 {"id": "device_id", "type": "string_ref", "dictionary": "strings", "role": "identity"},
118 {"id": "if_index", "type": "uint", "nullable": true, "role": "identity"},
119 {"id": "if_name", "type": "string_ref", "dictionary": "strings", "nullable": true}
120 ],
121 "values": [
122 {"codec": "dict", "values": [0, 1], "indexes": [0, 0, 1, 1]},
123 {"codec": "values", "values": [2, 3, 2, 3]},
124 {"codec": "values", "values": [null, null, 1, 1]},
125 {"codec": "values", "values": [null, null, 4, 5]}
126 ]
127 },
128 "links": {
129 "rows": 1,
130 "columns": [
131 {"id": "src_actor", "type": "actor_ref", "role": "reference"},
132 {"id": "dst_actor", "type": "actor_ref", "role": "reference"},
133 {"id": "type", "type": "string_ref", "dictionary": "strings"},
134 {"id": "evidence_count", "type": "uint", "role": "metric", "aggregation": "sum"}
135 ],
136 "values": [
137 {"codec": "const", "value": 0},
138 {"codec": "const", "value": 1},
139 {"codec": "const", "value": 6},
140 {"codec": "const", "value": 1}
141 ]
142 },
143 "evidence": {
144 "snmp_l2_observation": {
145 "type": "snmp_l2_observation",
146 "table": {
147 "rows": 1,
148 "columns": [
149 {"id": "link", "type": "link_ref", "role": "reference"},
150 {"id": "local_if", "type": "actor_ref", "role": "reference"},
151 {"id": "remote_if", "type": "actor_ref", "role": "reference"},
152 {"id": "protocol", "type": "string_ref", "dictionary": "strings", "role": "group_key"},
153 {"id": "observation", "type": "string_ref", "dictionary": "strings"}
154 ],
155 "values": [
156 {"codec": "const", "value": 0},
157 {"codec": "const", "value": 2},
158 {"codec": "const", "value": 3},
159 {"codec": "const", "value": 7},
160 {"codec": "const", "value": 8}
161 ]
162 }
163 }
164 },
165 "tables": {
166 "actor": {
167 "if_inventory": {
168 "type": "if_inventory",
169 "table": {
170 "rows": 2,
171 "columns": [
172 {"id": "actor", "type": "actor_ref", "role": "reference"},
173 {"id": "if_name", "type": "string_ref", "dictionary": "strings"},
174 {"id": "if_index", "type": "uint"},
175 {"id": "oper_status", "type": "string_ref", "dictionary": "strings"},
176 {"id": "speed_bps", "type": "uint", "unit": "bit/s", "aggregation": "max"}
177 ],
178 "values": [
179 {"codec": "values", "values": [2, 3]},
180 {"codec": "values", "values": [4, 5]},
181 {"codec": "const", "value": 1},
182 {"codec": "const", "value": 9},
183 {"codec": "const", "value": 1000000000}
184 ]
185 }
186 }
187 }
188 },
189 "overlays": {
190 "refs": {
191 "rows": 2,
192 "columns": [
193 {"id": "template", "type": "string_ref", "dictionary": "strings"},
194 {"id": "link", "type": "link_ref", "role": "reference"},
195 {"id": "node_id", "type": "string_ref", "dictionary": "strings"},
196 {"id": "if_name", "type": "string_ref", "dictionary": "strings"}
197 ],
198 "values": [
199 {"codec": "const", "value": 11},
200 {"codec": "const", "value": 0},
201 {"codec": "values", "values": [2, 3]},
202 {"codec": "values", "values": [4, 5]}
203 ]
204 }
205 },
206 "stats": {
207 "actors": 4,
208 "links": 1,
209 "evidence_rows": 1,
210 "overlay_refs": 2
211 }
212 }
213 }