Skip to content

Add hostname and IP address to JSON output for NMS integration #141

@FrankRay78

Description

@FrankRay78

Problem Statement

Network Management Systems (NMS) like NetBox and OpenNMS identify and correlate device monitoring data using hostname and IP address as primary identifiers. Currently, NetPace's JSON output doesn't include the client device's hostname or IP address, making it difficult to integrate speed test results into existing NMS workflows.

Current State

NetPace's JSON output includes:

{
  "ServerLocation": "Chicago, IL",
  "ServerSponsor": "Verizon",
  "ServerUrl": "http://...",
  "Timestamp": "2025-12-12 10:30:00",
  "Latency": "45 ms",
  "DownloadSpeed": "15.2 Mbps",
  "UploadSpeed": "3.4 Mbps"
}

Missing: Client device's hostname and IP address

Proposed Solution

Add two new fields to JSON output:

  • Hostname - The hostname of the device running NetPace
  • IpAddress - The IP address of the device (local IP or public IP used for the test)

Example output:

{
  "Hostname": "gateway-01.example.com",
  "IpAddress": "192.168.1.100",
  "ServerLocation": "Chicago, IL",
  "ServerSponsor": "Verizon",
  "ServerUrl": "http://...",
  "Timestamp": "2025-12-12 10:30:00",
  "Latency": "45 ms",
  "DownloadSpeed": "15.2 Mbps",
  "UploadSpeed": "3.4 Mbps"
}

Benefits

NMS Integration

  • NetBox: Correlates results to device inventory using hostname/IP, retrieves GPS coordinates from existing device metadata
  • OpenNMS: Identifies devices by IP address and reverse-lookup hostname for monitoring

Automation

  • Enables automated ingestion into monitoring dashboards
  • Allows correlation with existing device inventory systems
  • Supports fleet management workflows where GPS coordinates are already stored in NMS

IoT Use Cases

  • Enterprise deployments can leverage existing NMS infrastructure
  • Reduces need for GPS auto-detection in many scenarios (NMS already has location metadata)
  • Still valuable to support GPS as optional feature for standalone/mobile deployments

Implementation Notes

Files to Modify

  • src/NetPace.Console/ConsoleWriters/JsonConsoleWriter.cs - Add hostname/IP to JsonResult
  • src/NetPace.Console/ConsoleWriters/CSVConsoleWriter.cs - Add hostname/IP columns
  • Consider other output formats (Minimal, etc.)

Technical Considerations

  • Hostname: Use System.Net.Dns.GetHostName()
  • IP Address: Consider which IP to report:
    • Local IP address (from network interface)
    • Public IP (from speed test connection)
    • Both? (add LocalIpAddress and PublicIpAddress fields)

Backward Compatibility

  • New fields should be additive (non-breaking change)
  • Consider making fields optional in JSON output (null if unavailable)

Related Work

This complements the IoT MVP plan (Package C - Location Support). While GPS coordinates are valuable for mobile/standalone deployments, hostname/IP integration is critical for enterprise NMS workflows where location metadata already exists.

Suggested Priority: P0 for NMS integration, especially for IoT/fleet management use cases

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions