Fixed
Details
Assignee
Chandra GorantlaChandra GorantlaReporter
Chance NewkirkChance NewkirkLabels
Sprint
NoneFix versions
Priority
High
Details
Details
Assignee
Chandra Gorantla
Chandra GorantlaReporter
Chance Newkirk
Chance NewkirkLabels
Sprint
None
Fix versions
Priority
PagerDuty
PagerDuty
PagerDuty
Created November 6, 2024 at 9:14 PM
Updated December 10, 2024 at 1:31 PM
Resolved December 10, 2024 at 2:05 AM
Objective
Enable Pollerd-generated metrics to carry enriched metadata by referencing associated SNMP interface data when available. This will provide additional context for metrics related to IP interfaces, leveraging metadata such as
ifAlias
,ifName
, andifDescr
from SNMP interfaces when an association exists.Current Limitations
Resource Identification Only: Pollerd currently sends metrics to the time series layer with only the
resourceId
, lacking broader identifiers likenodeId
or IP-related metadata, which limits context.No Cross-Reference for Metadata: Metrics generated by Pollerd lack access to rich metadata gathered from SNMP interfaces in Collectd.
Functional Requirements
Enrichment of Pollerd Metrics: Metrics generated by Pollerd for IP interfaces should include metadata tags (like
ifAlias
,ifName
, andifDescr
) if an associated SNMP interface exists.Cross-Referencing Capability: Pollerd should be able to cross-reference IP interfaces with corresponding SNMP interfaces to retrieve additional metadata when possible.
Suggested Approaches for Implementation
We leave the specifics of implementation to the maintainers, but the following options could be considered:
Leverage Database Access:
Since OpenNMS already stores SNMP interface metadata in the database (likely accessed via the ORM layer such as Hibernate), Pollerd could query or retrieve these associations directly from the database rather than from Collectd.
Suggestion: A lightweight query mechanism or an ORM-based lookup to retrieve SNMP metadata when generating Pollerd metrics.
Centralized Metadata Store or Cache:
Implementing a shared metadata service or caching layer might help avoid repeated direct queries, especially in environments with high polling frequencies.
Suggestion: A caching mechanism that maps IP interfaces to associated SNMP metadata could help reduce load and improve performance, especially in environments where the same associations are queried frequently.
Incremental Synchronization:
If feasible, Pollerd could receive regular updates about interface associations from Collectd or a centralized metadata registry, allowing it to keep a local or session-based cache of these relationships. This approach would limit the load on the database or Collectd during metric generation.
Suggestion: Explore the possibility of an asynchronous synchronization job that updates mappings between IP interfaces and SNMP metadata periodically.
Example Workflow
Pollerd polls an IP interface (e.g.,
192.168.1.1
) and initiates metric generation.Pollerd attempts to identify if an associated SNMP interface exists, either by querying the ORM/database layer, consulting a centralized metadata store, or using an in-memory cache.
If a match is found, Pollerd enriches the metric with metadata tags from the SNMP interface (
ifAlias
,ifName
,ifDescr
).The enriched metric, now carrying more context, is sent to the time series integration layer.
Benefits
Enhanced Observability: Detailed interface metadata improves situational awareness and provides richer context for troubleshooting.
Seamless Integration: Aligning Pollerd and Collectd metadata creates a more cohesive view of network performance.
Scalability Considerations: Implementing a metadata caching strategy or batched synchronization can help balance performance in high-frequency polling environments.