How newrelic/newrelic-diagnostics-cli works
nrdiag is a cross-platform diagnostics CLI for finding configuration, connectivity, and compatibility problems in New Relic-supported products. Users run it with selected suites or tasks; the CLI selects and registers checks, executes them, and presents diagnostic results. Checks span shared host and agent diagnostics plus technology-specific domains, including Kubernetes and synthetics. Results can also be packaged and uploaded to a New Relic account. The graph follows relationships visible in the excerpts, SOURCE INDEX, or README; unsampled task internals are represented at their existing directories.
Main entry points: registerTasks.go Task registration · processTasks.go Task runner · attach.go Result attachment · connect.go Agent control
Components 20
CLI orchestration
- Task runner
processTasks.go - Suite selection
suites/suiteDefinitions.go - Task registration
registration/registerTasks.go
Diagnostic checks
- Host and agent checks
tasks/base - Agent control
tasks/agentcontrol/agent/connect.go - Java checks
tasks/java - .NET checks
tasks/dotnet/requirements/messagingServicesCheck_windows.go - .NET Core checks
tasks/dotnetcore - Infrastructure checks
tasks/infra - Language agent checks
tasks/node - Kubernetes checks
tasks/k8s - Synthetics checks
tasks/synthetics/minion
Results and delivery
- Result output
output/output.go - Result attachment
attach/attach.go
Shared task layers
- Task results
tasks/tasks.go - Configuration validation
tasks/base/config/validate.go - Log collection
tasks/base/log/copy.go - HTTP client
helpers/httpHelper/httpHelper.go
Other components
- CLI user
- New Relic account
Connections 21
- CLI user → Task runner: runs
- Task runner → Suite selection: selects suites
processTasks.go - Task runner → Task registration: registers tasks
processTasks.go - Task runner → Task results: executes tasks
processTasks.go - Task registration → Host and agent checks: registers checks
registration/registerTasks.go - Task registration → Agent control: registers checks
registration/registerTasks.go - Task registration → Java checks: registers checks
registration/registerTasks.go - Task registration → .NET checks: registers checks
registration/registerTasks.go - Task registration → .NET Core checks: registers checks
registration/registerTasks.go - Task registration → Infrastructure checks: registers checks
registration/registerTasks.go - Task registration → Language agent checks: registers checks
registration/registerTasks.go - Task registration → Kubernetes checks: registers checks
registration/registerTasks.go - Task registration → Synthetics checks: registers checks
registration/registerTasks.go - Task runner → Result output: writes results
processTasks.go - Task runner → Result attachment: starts upload
processTasks.go - Result output → Task results: formats results
output/output.go - Agent control → HTTP client: makes requests
tasks/agentcontrol/agent/connect.go - Result attachment → HTTP client: uploads files
attach/attach.go - Result attachment → New Relic account: uploads results
- Task runner → Configuration validation: executes selected checks
- Task runner → Log collection: executes selected checks