-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add per vendor generic profiles (#14721)
* add dell generic profile * add fortinet generic profile * add juniper generic profile * move vendor profiles to default-profiles * add test for cisco * add test for dell * add test for fortinet * add test for juniper * linter * linter
- Loading branch information
1 parent
58b2f32
commit 89a3e0e
Showing
15 changed files
with
502 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# Profile for Cisco devices | ||
|
||
extends: | ||
- _base_cisco.yaml | ||
|
||
metadata: | ||
device: | ||
fields: | ||
vendor: | ||
value: "cisco" | ||
|
||
sysobjectid: 1.3.6.1.4.1.9.1.* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Profile for Dell devices | ||
|
||
extends: | ||
- _base.yaml | ||
- _generic-ip.yaml | ||
- _generic-tcp.yaml | ||
- _generic-udp.yaml | ||
|
||
metadata: | ||
device: | ||
fields: | ||
vendor: | ||
value: "dell" | ||
|
||
sysobjectid: 1.3.6.1.4.1.674.* |
17 changes: 17 additions & 0 deletions
17
snmp/datadog_checks/snmp/data/default_profiles/fortinet.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Profile for Fortinet devices | ||
# For Fortinet FortiGate devices, a separate fortinet-fortigate profile is used | ||
|
||
extends: | ||
- _base.yaml | ||
- _generic-if.yaml | ||
|
||
metadata: | ||
device: | ||
fields: | ||
vendor: | ||
value: "fortinet" | ||
|
||
sysobjectid: | ||
- 1.3.6.1.4.1.12356.103.* # Fortinet Appliance | ||
- 1.3.6.1.4.1.12356.106.1.* # Fortinet fortiswitch | ||
|
27 changes: 27 additions & 0 deletions
27
snmp/datadog_checks/snmp/data/default_profiles/juniper.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Profile for Juniper devices | ||
|
||
extends: | ||
- _base.yaml | ||
- _generic-if.yaml | ||
- _generic-ip.yaml | ||
- _generic-tcp.yaml | ||
- _generic-udp.yaml | ||
- _generic-bgp4.yaml | ||
- _generic-ospf.yaml | ||
- _generic-host-resources.yaml | ||
- _juniper-junos-generic.yaml | ||
|
||
metadata: | ||
device: | ||
fields: | ||
vendor: | ||
value: "juniper-networks" | ||
|
||
# Juniper Products are declared in JUNIPER-CHASSIS-DEFINES-MIB. | ||
# Products are defined under 1.3.6.1.4.1.2636.1.1.1.2 (jnxProductName). | ||
# Variations are defined under 1.3.6.1.4.1.2636.1.1.1.4 (jnxProductVariation). | ||
# Reference: https://mibs.observium.org/mib/JUNIPER-CHASSIS-DEFINES-MIB/ | ||
sysobjectid: | ||
- 1.3.6.1.4.1.2636.1.1.1.2.* # Products | ||
- 1.3.6.1.4.1.2636.1.1.1.4.* # Variations | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
1.3.6.1.2.1.1.1.0|4|Cisco IOS XR Software, Copyright (c) 2013-2020 by Cisco Systems, Inc. | ||
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.9.1.122 | ||
1.3.6.1.2.1.1.5.0|4|cisco3620 | ||
1.3.6.1.2.1.2.1.0|2|4 | ||
1.3.6.1.2.1.4.31.1.1.4.1|2|310637142 | ||
1.3.6.1.2.1.6.5.0|65|457790 | ||
1.3.6.1.2.1.7.8.0|70|6116206687099577350 | ||
1.3.6.1.2.1.14.10.1.6.192.29.116.26.0|2|8 | ||
1.3.6.1.2.1.15.3.1.3.244.12.239.177|2|2 | ||
1.3.6.1.4.1.9.9.48.1.1.1.5.18|66|4078680985 | ||
1.3.6.1.4.1.9.9.109.1.1.1.1.7.712|66|20 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
1.3.6.1.2.1.1.1.0|4|Dell dummy device | ||
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.674.1 | ||
1.3.6.1.2.1.1.5.0|4|dell.example | ||
1.3.6.1.2.1.4.31.1.1.4.1|2|310637142 | ||
1.3.6.1.2.1.6.5.0|65|457790 | ||
1.3.6.1.2.1.7.8.0|70|6116206687099577350 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
1.3.6.1.2.1.1.1.0|4|Fortinet Appliance dummy device | ||
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.12356.103.1 | ||
1.3.6.1.2.1.1.5.0|4|fortinet.appliance.example | ||
1.3.6.1.2.1.2.1.0|2|4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
1.3.6.1.2.1.1.1.0|4|Fortinet Fortiswitch dummy device | ||
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.12356.106.1.1 | ||
1.3.6.1.2.1.1.5.0|4|fortinet.fortiswitch.example | ||
1.3.6.1.2.1.2.1.0|2|4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
1.3.6.1.2.1.1.1.0|4|Juniper Networks, Inc. | ||
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.2636.1.1.1.4.1 | ||
1.3.6.1.2.1.1.5.0|4|jnxVariationM40 | ||
1.3.6.1.2.1.2.1.0|2|4 | ||
1.3.6.1.2.1.4.31.1.1.4.1|2|310637142 | ||
1.3.6.1.2.1.6.5.0|65|457790 | ||
1.3.6.1.2.1.7.8.0|70|6116206687099577350 | ||
1.3.6.1.2.1.14.10.1.6.192.29.116.26.0|2|8 | ||
1.3.6.1.2.1.15.3.1.3.244.12.239.177|2|2 | ||
1.3.6.1.2.1.25.1.1.0|67|803137913 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
1.3.6.1.2.1.1.1.0|4|Juniper Networks, Inc. | ||
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.2636.1.1.1.2.1 | ||
1.3.6.1.2.1.1.5.0|4|jnxM40 | ||
1.3.6.1.2.1.2.1.0|2|4 | ||
1.3.6.1.2.1.4.31.1.1.4.1|2|310637142 | ||
1.3.6.1.2.1.6.5.0|65|457790 | ||
1.3.6.1.2.1.7.8.0|70|6116206687099577350 | ||
1.3.6.1.2.1.14.10.1.6.192.29.116.26.0|2|8 | ||
1.3.6.1.2.1.15.3.1.3.244.12.239.177|2|2 | ||
1.3.6.1.2.1.25.1.1.0|67|803137913 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# (C) Datadog, Inc. 2023-present | ||
# All rights reserved | ||
# Licensed under a 3-clause BSD style license (see LICENSE) | ||
|
||
import pytest | ||
|
||
from .. import common | ||
from ..test_e2e_core_metadata import assert_device_metadata | ||
from .utils import ( | ||
assert_common_metrics, | ||
assert_extend_cisco_cpu_memory, | ||
assert_extend_generic_bgp4, | ||
assert_extend_generic_if, | ||
assert_extend_generic_ip, | ||
assert_extend_generic_ospf, | ||
assert_extend_generic_tcp, | ||
assert_extend_generic_udp, | ||
create_e2e_core_test_config, | ||
get_device_ip_from_config, | ||
) | ||
|
||
pytestmark = [pytest.mark.e2e, common.py3_plus_only, common.snmp_integration_only] | ||
|
||
|
||
def test_e2e_profile_cisco(dd_agent_check): | ||
config = create_e2e_core_test_config("cisco") | ||
aggregator = common.dd_agent_check_wrapper(dd_agent_check, config, rate=True) | ||
|
||
ip_address = get_device_ip_from_config(config) | ||
common_tags = [ | ||
"snmp_profile:cisco", | ||
"snmp_host:cisco3620", | ||
"device_namespace:default", | ||
"snmp_device:" + ip_address, | ||
] | ||
|
||
# --- TEST METRICS --- | ||
assert_common_metrics(aggregator, common_tags) | ||
assert_extend_generic_if(aggregator, common_tags) | ||
assert_extend_generic_ip(aggregator, common_tags) | ||
assert_extend_generic_tcp(aggregator, common_tags) | ||
assert_extend_generic_udp(aggregator, common_tags) | ||
assert_extend_generic_ospf(aggregator, common_tags) | ||
assert_extend_generic_bgp4(aggregator, common_tags) | ||
assert_extend_cisco_cpu_memory(aggregator, common_tags) | ||
aggregator.assert_all_metrics_covered() | ||
|
||
# --- TEST METADATA --- | ||
device = { | ||
"description": "Cisco IOS XR Software, Copyright (c) 2013-2020 by Cisco Systems, Inc.", | ||
"id": "default:" + ip_address, | ||
"id_tags": ["device_namespace:default", "snmp_device:" + ip_address], | ||
"ip_address": "" + ip_address, | ||
"name": "cisco3620", | ||
"os_name": "IOSXR", | ||
"profile": "cisco", | ||
"status": 1, | ||
"sys_object_id": "1.3.6.1.4.1.9.1.122", | ||
"tags": [ | ||
"device_namespace:default", | ||
"snmp_device:" + ip_address, | ||
"snmp_host:cisco3620", | ||
"snmp_profile:cisco", | ||
], | ||
"vendor": "cisco", | ||
} | ||
assert_device_metadata(aggregator, device) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# (C) Datadog, Inc. 2023-present | ||
# All rights reserved | ||
# Licensed under a 3-clause BSD style license (see LICENSE) | ||
|
||
import pytest | ||
|
||
from .. import common | ||
from ..test_e2e_core_metadata import assert_device_metadata | ||
from .utils import ( | ||
assert_common_metrics, | ||
assert_extend_generic_ip, | ||
assert_extend_generic_tcp, | ||
assert_extend_generic_udp, | ||
create_e2e_core_test_config, | ||
get_device_ip_from_config, | ||
) | ||
|
||
pytestmark = [pytest.mark.e2e, common.py3_plus_only, common.snmp_integration_only] | ||
|
||
|
||
def test_e2e_profile_dell(dd_agent_check): | ||
config = create_e2e_core_test_config("dell") | ||
aggregator = common.dd_agent_check_wrapper(dd_agent_check, config, rate=True) | ||
|
||
ip_address = get_device_ip_from_config(config) | ||
common_tags = [ | ||
"snmp_profile:dell", | ||
"snmp_host:dell.example", | ||
"device_namespace:default", | ||
"snmp_device:" + ip_address, | ||
] | ||
|
||
# --- TEST METRICS --- | ||
assert_common_metrics(aggregator, common_tags) | ||
assert_extend_generic_ip(aggregator, common_tags) | ||
assert_extend_generic_tcp(aggregator, common_tags) | ||
assert_extend_generic_udp(aggregator, common_tags) | ||
aggregator.assert_all_metrics_covered() | ||
|
||
# --- TEST METADATA --- | ||
device = { | ||
"description": "Dell dummy device", | ||
"id": "default:" + ip_address, | ||
"id_tags": ["device_namespace:default", "snmp_device:" + ip_address], | ||
"ip_address": "" + ip_address, | ||
"name": "dell.example", | ||
"profile": "dell", | ||
"status": 1, | ||
"sys_object_id": "1.3.6.1.4.1.674.1", | ||
"tags": [ | ||
"device_namespace:default", | ||
"snmp_device:" + ip_address, | ||
"snmp_host:dell.example", | ||
"snmp_profile:dell", | ||
], | ||
"vendor": "dell", | ||
} | ||
assert_device_metadata(aggregator, device) |
92 changes: 92 additions & 0 deletions
92
snmp/tests/test_e2e_core_profiles/test_profile_fortinet.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
# (C) Datadog, Inc. 2023-present | ||
# All rights reserved | ||
# Licensed under a 3-clause BSD style license (see LICENSE) | ||
|
||
import pytest | ||
|
||
from .. import common | ||
from ..test_e2e_core_metadata import assert_device_metadata | ||
from .utils import ( | ||
assert_common_metrics, | ||
assert_extend_generic_if, | ||
create_e2e_core_test_config, | ||
get_device_ip_from_config, | ||
) | ||
|
||
pytestmark = [pytest.mark.e2e, common.py3_plus_only, common.snmp_integration_only] | ||
|
||
|
||
def test_e2e_profile_fortinet_appliance(dd_agent_check): | ||
config = create_e2e_core_test_config("fortinet-appliance") | ||
aggregator = common.dd_agent_check_wrapper(dd_agent_check, config, rate=True) | ||
|
||
ip_address = get_device_ip_from_config(config) | ||
common_tags = [ | ||
"snmp_profile:fortinet", | ||
"snmp_host:fortinet.appliance.example", | ||
"device_namespace:default", | ||
"snmp_device:" + ip_address, | ||
] | ||
|
||
# --- TEST METRICS --- | ||
assert_common_metrics(aggregator, common_tags) | ||
assert_extend_generic_if(aggregator, common_tags) | ||
aggregator.assert_all_metrics_covered() | ||
|
||
# --- TEST METADATA --- | ||
device = { | ||
"description": "Fortinet Appliance dummy device", | ||
"id": "default:" + ip_address, | ||
"id_tags": ["device_namespace:default", "snmp_device:" + ip_address], | ||
"ip_address": "" + ip_address, | ||
"name": "fortinet.appliance.example", | ||
"profile": "fortinet", | ||
"status": 1, | ||
"sys_object_id": "1.3.6.1.4.1.12356.103.1", | ||
"tags": [ | ||
"device_namespace:default", | ||
"snmp_device:" + ip_address, | ||
"snmp_host:fortinet.appliance.example", | ||
"snmp_profile:fortinet", | ||
], | ||
"vendor": "fortinet", | ||
} | ||
assert_device_metadata(aggregator, device) | ||
|
||
|
||
def test_e2e_profile_fortinet_fortiswitch(dd_agent_check): | ||
config = create_e2e_core_test_config("fortinet-fortiswitch") | ||
aggregator = common.dd_agent_check_wrapper(dd_agent_check, config, rate=True) | ||
|
||
ip_address = get_device_ip_from_config(config) | ||
common_tags = [ | ||
"snmp_profile:fortinet", | ||
"snmp_host:fortinet.fortiswitch.example", | ||
"device_namespace:default", | ||
"snmp_device:" + ip_address, | ||
] | ||
|
||
# --- TEST METRICS --- | ||
assert_common_metrics(aggregator, common_tags) | ||
assert_extend_generic_if(aggregator, common_tags) | ||
aggregator.assert_all_metrics_covered() | ||
|
||
# --- TEST METADATA --- | ||
device = { | ||
"description": "Fortinet Fortiswitch dummy device", | ||
"id": "default:" + ip_address, | ||
"id_tags": ["device_namespace:default", "snmp_device:" + ip_address], | ||
"ip_address": "" + ip_address, | ||
"name": "fortinet.fortiswitch.example", | ||
"profile": "fortinet", | ||
"status": 1, | ||
"sys_object_id": "1.3.6.1.4.1.12356.106.1.1", | ||
"tags": [ | ||
"device_namespace:default", | ||
"snmp_device:" + ip_address, | ||
"snmp_host:fortinet.fortiswitch.example", | ||
"snmp_profile:fortinet", | ||
], | ||
"vendor": "fortinet", | ||
} | ||
assert_device_metadata(aggregator, device) |
Oops, something went wrong.