Skip to content

Commit 0b77b37

Browse files
committed
scaffold
1 parent cafdbff commit 0b77b37

91 files changed

Lines changed: 24384 additions & 4 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.ddev/config.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ control_m = "control_m."
5959
nifi = "nifi."
6060
dell_powerflex = "dell_powerflex."
6161
hpe_aruba_edgeconnect = "hpe_aruba_edgeconnect."
62+
cisco_catalyst_center = "cisco_catalyst_center."
6263

6364
[overrides.ci.ddev]
6465
platforms = ["linux", "windows"]
@@ -277,4 +278,5 @@ control_m = ["linux", "windows", "mac_os"]
277278
nifi = ["linux", "windows", "mac_os"]
278279
dell_powerflex = ["linux", "windows", "mac_os"]
279280
hpe_aruba_edgeconnect = ["linux", "windows", "mac_os"]
281+
cisco_catalyst_center = ["linux", "windows", "mac_os"]
280282

.github/workflows/config/labeler.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,10 @@ integration/cisco_asa:
297297
- changed-files:
298298
- any-glob-to-any-file:
299299
- cisco_asa/**/*
300+
integration/cisco_catalyst_center:
301+
- changed-files:
302+
- any-glob-to-any-file:
303+
- cisco_catalyst_center/**/*
300304
integration/cisco_duo:
301305
- changed-files:
302306
- any-glob-to-any-file:
@@ -413,10 +417,6 @@ integration/crowdstrike_fdr:
413417
- changed-files:
414418
- any-glob-to-any-file:
415419
- crowdstrike_fdr/**/*
416-
integration/idira_endpoint_privilege_manager:
417-
- changed-files:
418-
- any-glob-to-any-file:
419-
- idira_endpoint_privilege_manager/**/*
420420
integration/databricks:
421421
- changed-files:
422422
- any-glob-to-any-file:
@@ -725,6 +725,10 @@ integration/ide_shepherd:
725725
- changed-files:
726726
- any-glob-to-any-file:
727727
- ide_shepherd/**/*
728+
integration/idira_endpoint_privilege_manager:
729+
- changed-files:
730+
- any-glob-to-any-file:
731+
- idira_endpoint_privilege_manager/**/*
728732
integration/ignite:
729733
- changed-files:
730734
- any-glob-to-any-file:

.github/workflows/test-all.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,6 +689,26 @@ jobs:
689689
minimum-base-package: ${{ inputs.minimum-base-package }}
690690
pytest-args: ${{ inputs.pytest-args }}
691691
secrets: inherit
692+
j7f33498:
693+
uses: ./.github/workflows/test-target.yml
694+
with:
695+
job-name: cisco_catalyst_center
696+
target: cisco_catalyst_center
697+
platform: linux
698+
runner: '["ubuntu-22.04"]'
699+
repo: "${{ inputs.repo }}"
700+
context: ${{ inputs.context }}
701+
python-version: "${{ inputs.python-version }}"
702+
latest: ${{ inputs.latest }}
703+
agent-image: "${{ inputs.agent-image }}"
704+
agent-image-py2: "${{ inputs.agent-image-py2 }}"
705+
agent-image-windows: "${{ inputs.agent-image-windows }}"
706+
agent-image-windows-py2: "${{ inputs.agent-image-windows-py2 }}"
707+
test-py2: ${{ inputs.test-py2 }}
708+
test-py3: ${{ inputs.test-py3 }}
709+
minimum-base-package: ${{ inputs.minimum-base-package }}
710+
pytest-args: ${{ inputs.pytest-args }}
711+
secrets: inherit
692712
jafd4d40:
693713
uses: ./.github/workflows/test-target.yml
694714
with:

cisco_catalyst_center/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# CHANGELOG - cisco_catalyst_center
2+
3+
<!-- towncrier release notes start -->
4+

cisco_catalyst_center/README.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Agent Check: cisco_catalyst_center
2+
3+
## Overview
4+
5+
This check monitors [cisco_catalyst_center][1] through the Datadog Agent.
6+
7+
Include a high level overview of what this integration does:
8+
- What does your product do (in 1-2 sentences)?
9+
- What value will customers get from this integration, and why is it valuable to them?
10+
- What specific data will your integration monitor, and what's the value of that data?
11+
12+
## Setup
13+
14+
Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the [Autodiscovery integration templates][3] for guidance on applying these instructions.
15+
16+
### Installation
17+
18+
The cisco_catalyst_center check is included in the [Datadog Agent][2] package.
19+
No additional installation is needed on your server.
20+
21+
### Configuration
22+
23+
1. Edit the `cisco_catalyst_center.d/conf.yaml` file, in the `conf.d/` folder at the root of your Agent's configuration directory to start collecting your cisco_catalyst_center performance data. See the [sample cisco_catalyst_center.d/conf.yaml][4] for all available configuration options.
24+
25+
2. [Restart the Agent][5].
26+
27+
### Validation
28+
29+
[Run the Agent's status subcommand][6] and look for `cisco_catalyst_center` under the Checks section.
30+
31+
## Data collected
32+
33+
### Metrics
34+
35+
See [metadata.csv][7] for a list of metrics provided by this integration.
36+
37+
### Events
38+
39+
The cisco_catalyst_center integration does not include any events.
40+
41+
### Service checks
42+
43+
The cisco_catalyst_center integration does not include any service checks.
44+
45+
See [service_checks.json][8] for a list of service checks provided by this integration.
46+
47+
## Troubleshooting
48+
49+
Need help? Contact [Datadog support][9].
50+
51+
52+
[1]: **LINK_TO_INTEGRATION_SITE**
53+
[2]: https://app.datadoghq.com/account/settings/agent/latest
54+
[3]: https://docs.datadoghq.com/containers/kubernetes/integrations/
55+
[4]: https://github.com/DataDog/integrations-core/blob/master/cisco_catalyst_center/datadog_checks/cisco_catalyst_center/data/conf.yaml.example
56+
[5]: https://docs.datadoghq.com/agent/configuration/agent-commands/#start-stop-and-restart-the-agent
57+
[6]: https://docs.datadoghq.com/agent/configuration/agent-commands/#agent-status-and-information
58+
[7]: https://github.com/DataDog/integrations-core/blob/master/cisco_catalyst_center/metadata.csv
59+
[8]: https://github.com/DataDog/integrations-core/blob/master/cisco_catalyst_center/assets/service_checks.json
60+
[9]: https://docs.datadoghq.com/help/
Lines changed: 235 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,235 @@
1+
name: Cisco Catalyst Center
2+
fleet_configurable: true
3+
files:
4+
- name: cisco_catalyst_center.yaml
5+
options:
6+
- template: init_config
7+
options:
8+
- template: init_config/default
9+
- template: instances
10+
options:
11+
- name: catalyst_center_host
12+
fleet_configurable: true
13+
required: true
14+
description: |
15+
Hostname or IP address of the Cisco Catalyst Center appliance. Do not include a scheme;
16+
HTTPS is always used.
17+
value:
18+
type: string
19+
example: catalyst-center.example.com
20+
21+
- name: catalyst_center_username
22+
fleet_configurable: true
23+
required: true
24+
description: |
25+
Username of a Catalyst Center account with API access. The OBSERVER role is sufficient,
26+
since the check only issues read requests.
27+
value:
28+
type: string
29+
30+
- name: catalyst_center_password
31+
fleet_configurable: true
32+
required: true
33+
secret: true
34+
description: Password for the Catalyst Center account.
35+
value:
36+
type: string
37+
38+
- name: namespace
39+
fleet_configurable: true
40+
description: |
41+
Namespace to use for NDM device metadata. This must match the namespace configured on the
42+
SNMP check polling the same devices. If the two differ, Catalyst Center and SNMP resolve to
43+
different NDM devices and the telemetry does not merge.
44+
value:
45+
type: string
46+
example: default
47+
default: default
48+
49+
- name: token_refresh_buffer_seconds
50+
fleet_configurable: true
51+
description: |
52+
How long before expiry the authentication token is refreshed. Catalyst Center tokens live
53+
for one hour.
54+
value:
55+
type: integer
56+
minimum: 30
57+
default: 300
58+
example: 300
59+
60+
- name: collect_interfaces
61+
fleet_configurable: true
62+
description: |
63+
Set to `false` to skip port and interface health.
64+
value:
65+
type: boolean
66+
example: true
67+
default: true
68+
69+
- name: collect_interface_statistics
70+
fleet_configurable: true
71+
description: |
72+
Set to `false` to skip interface throughput, error and discard rates. These come from a
73+
separate `statistics` view on the interfaces endpoint, so disabling this removes one
74+
paginated call per collection cycle. This is the first thing to turn off if the appliance
75+
starts returning HTTP 429.
76+
value:
77+
type: boolean
78+
example: true
79+
default: true
80+
81+
- name: collect_interface_poe
82+
fleet_configurable: true
83+
description: |
84+
Set to `true` to collect per-port PoE state and power draw. Off by default because it
85+
costs an additional paginated call and every field is empty on hardware without PoE.
86+
value:
87+
type: boolean
88+
example: false
89+
default: false
90+
91+
- name: collect_stacks
92+
fleet_configurable: true
93+
description: |
94+
Set to `false` to skip switch stack membership and member health. This is the only
95+
per-device request the check makes, issued once per stackable switch.
96+
value:
97+
type: boolean
98+
example: true
99+
default: true
100+
101+
- name: collect_site_health
102+
fleet_configurable: true
103+
description: |
104+
Set to `false` to skip per-site rollups. This endpoint returns at most 20 sites per page,
105+
so a large hierarchy costs proportionally more requests than the other collectors.
106+
value:
107+
type: boolean
108+
example: true
109+
default: true
110+
111+
- name: collect_client_experience
112+
fleet_configurable: true
113+
description: |
114+
Set to `false` to skip client signal quality and onboarding timings. Catalyst Center
115+
performs the aggregation, so this costs one request and emits per SSID and band rather
116+
than per client — client MAC addresses never appear in tags.
117+
value:
118+
type: boolean
119+
example: true
120+
default: true
121+
122+
- name: l3_topology_types
123+
fleet_configurable: true
124+
description: |
125+
Which layer 3 routing graphs to size, one request each. Only used when `collect_topology`
126+
is enabled.
127+
value:
128+
type: array
129+
items:
130+
type: string
131+
example:
132+
- ospf
133+
default:
134+
- ospf
135+
136+
- name: collect_topology
137+
fleet_configurable: true
138+
description: |
139+
Set to `true` to collect the CDP/LLDP-derived physical topology and the size of the site
140+
hierarchy. The topology endpoint is not paginated, so a large fabric returns every link in
141+
a single response.
142+
value:
143+
type: boolean
144+
example: false
145+
default: false
146+
147+
- name: collect_sda_fabric
148+
fleet_configurable: true
149+
description: |
150+
Set to `true` to collect Cisco SD-Access fabric health, virtual network health, and a count
151+
of devices by fabric role. Only useful on deployments running SD-Access.
152+
value:
153+
type: boolean
154+
example: false
155+
default: false
156+
157+
- name: collect_assurance_issues
158+
fleet_configurable: true
159+
description: |
160+
Set to `true` to collect counts of open assurance issues by severity, priority, category
161+
and status.
162+
value:
163+
type: boolean
164+
example: false
165+
default: false
166+
167+
- name: collect_application_health
168+
fleet_configurable: true
169+
description: |
170+
Set to `true` to collect per-application health and traffic. This endpoint requires a site
171+
to be named on every request, so it costs one request per site and its cost grows with the
172+
size of the hierarchy.
173+
value:
174+
type: boolean
175+
example: false
176+
default: false
177+
178+
- name: collect_security
179+
fleet_configurable: true
180+
description: |
181+
Set to `true` to collect rogue access point and aWIPS wireless intrusion counts. Both are
182+
wireless-edge features and report nothing on a wired-only deployment.
183+
value:
184+
type: boolean
185+
example: false
186+
default: false
187+
188+
- name: collect_wireless
189+
fleet_configurable: true
190+
description: |
191+
Set to `true` to collect access point and radio metrics. Disabled by default: the mapping is
192+
derived from Cisco's published API schema but has not yet been validated against a live
193+
controller, so the field names are trusted while the values are not.
194+
value:
195+
type: boolean
196+
example: false
197+
default: false
198+
199+
- name: max_pages
200+
fleet_configurable: true
201+
description: |
202+
Maximum number of pages to request from any single paginated endpoint in one collection
203+
cycle. Acts as a safety valve against runaway pagination.
204+
value:
205+
type: integer
206+
minimum: 1
207+
default: 1000
208+
example: 1000
209+
210+
- template: instances/http
211+
overrides:
212+
persist_connections.value.default: true
213+
persist_connections.value.example: true
214+
persist_connections.description: |
215+
Connections are always persisted so that connection pooling is used across the several
216+
endpoints polled each cycle.
217+
- template: instances/default
218+
overrides:
219+
min_collection_interval.value.example: 60
220+
min_collection_interval.value.display_default: 60
221+
min_collection_interval.description: |
222+
Changes the collection interval of the check. For more information, see
223+
https://docs.datadoghq.com/developers/write_agent_check/#collection-interval.
224+
The default is 60 seconds. Catalyst Center recomputes assurance health on roughly a
225+
five-minute cycle, so more frequent runs do not yield fresher health scores.
226+
227+
- name: send_ndm_metadata
228+
fleet_configurable: true
229+
description: |
230+
Set to `true` to enable Network Device Monitoring metadata (for devices, interfaces, and
231+
topology) to be sent.
232+
value:
233+
type: boolean
234+
example: false
235+
default: false
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Please build an out-of-the-box dashboard for your integration following our best practices here: https://datadoghq.dev/integrations-core/guidelines/dashboards/#best-practices
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Initial Release
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# (C) Datadog, Inc. 2026-present
2+
# All rights reserved
3+
# Licensed under a 3-clause BSD style license (see LICENSE)
4+
__version__ = '0.0.1'
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# (C) Datadog, Inc. 2026-present
2+
# All rights reserved
3+
# Licensed under a 3-clause BSD style license (see LICENSE)
4+
from .__about__ import __version__
5+
from .check import CiscoCatalystCenterCheck
6+
7+
__all__ = ['__version__', 'CiscoCatalystCenterCheck']

0 commit comments

Comments
 (0)