Configure Analytics, Automation, Dashboard and Report for GoLang

⚙️ Configure Analytics, Automation, Dashboards, and Reports for Go

After deploying Go code profiling and usage monitoring, verify that GermainUX is receiving profiling data from the Go application. The standard Go monitoring configuration is preconfigured and can be customized when your requirements differ.

🔎 Verify the monitored application

In GermainUX Workspace, confirm that the following entities are enabled and correctly associated:

Entity

Verify

Data source

Go profiling endpoint, host, port, URI, and collection schedule

image-20240228-190450.png
GoLang Data Source enabled - Germain UX

Application

Application name, environment, monitored server, and ownership

image-20240228-190537.png
GoLang Application enabled - Germain UX

Monitoring node

GermainUX Engine assigned to collect the profiling data

KPIs

Required Go profiling KPIs are enabled

SLA

Thresholds reflect the application’s expected operating range

image-20240228-185247.png

📊 Go analytics

Depending on the profiles enabled in the Go application, GermainUX can collect and analyze:

Insight

Purpose

CPU profile

Identify functions consuming the most CPU time

Heap usage

Find memory retained by functions and allocation paths

Allocations

Analyze the volume and source of memory allocations

Goroutine count and stacks

Detect blocked, leaked, or unusually numerous goroutines

image-20240228-185153.png
GoLang KPIs enabled - Germain UX

Mutex contention

Identify lock contention when mutex profiling is enabled

Blocking operations

Identify blocking call paths when block profiling is enabled

Thread creation

Analyze operating-system thread creation

Profile trends

Compare profiling measurements across time, releases, servers, or application instances

The data available depends on the Go profiles exposed by the application and collected by the GermainUX Engine. Business transactions, handled errors, HTTP status codes, and request-level attributes require corresponding logs, metrics, or application instrumentation; they are not produced automatically by Go pprof.

KPIs and measures

The standard configuration can include KPIs such as:

  • Go CPU samples

  • Go heap usage

  • Go allocation activity

  • Go goroutine count

Use KPIs, pivots, and measures to customize aggregation, grouping, filtering, and analytical dimensions.

SLAs

Configure SLAs for conditions that require evaluation against an expected operating range, such as:

  • Excessive CPU activity

  • Unusual heap growth

  • Abnormally high goroutine counts

  • Increased allocation activity

  • Sustained mutex contention or blocking

Set thresholds from observed application baselines. A temporary increase during deployment, startup, batch processing, or load testing does not necessarily indicate a problem.

Categorization

Use categorization to group related profiling evidence by attributes such as:

  • Application and service

  • Environment

  • Host or container

  • Release or build

  • Function, package, or call path

  • Profile type

Correlation and tracing

Use correlation and tracing to connect Go profiling evidence with related telemetry available in GermainUX, including:

  • Application logs and errors

  • Service or API transactions

  • Infrastructure and container metrics

  • Database activity

  • Business-process events

  • User sessions and browser activity

Correlation requires compatible timestamps, identifiers, and attributes across the participating data sources.

Alerts and automated actions

Create an alert when a Go KPI or SLA reaches a condition that requires attention.

Examples include:

  • CPU consumption remains above its expected range.

  • Heap usage continues to grow across consecutive collections.

  • Goroutine count changes unexpectedly.

  • Blocking or mutex contention becomes significant.

  • A profiling anomaly coincides with application errors or degraded transactions.

GermainUX can also execute supported automated actions when configured conditions are detected. Depending on the environment and authorization, an action can:

  • Send a notification

  • Create or enrich an incident

  • Call an approved API or webhook

  • Run an authorized diagnostic procedure

  • Start an approved remediation workflow

Apply safeguards, permissions, validation, and rate limits before enabling remediation against a production Go application. Actions that restart services, change resources, or modify application state should require appropriate operational approval.

Dashboards

Use an existing dashboard or create a dashboard for the Go application.

A Go monitoring dashboard can present:

  • CPU, heap, allocation, and goroutine trends

  • Profiling data by service, host, container, or environment

  • SLA status and violations

  • Recent alerts and anomalies

  • Functions or packages contributing most to resource use

  • Related errors, logs, transactions, and infrastructure conditions

  • Comparisons between releases or application instances

Reports

Use automatic reports to distribute Go monitoring results on a schedule.

Reports can summarize:

  • Resource-usage trends

  • Profiling anomalies

  • SLA compliance

  • Frequently affected functions or packages

  • Comparisons across environments, releases, or services

  • Alert and remediation activity

Security

Go profiling endpoints can expose function names, stack traces, runtime behavior, and other implementation details. Protect them accordingly:

  • Do not expose /debug/pprof/ publicly.

  • Restrict access to the GermainUX Engine and authorized administrators.

  • Use private networking, firewall rules, TLS, and an authenticated proxy where required.

  • Limit GermainUX access according to user roles.

  • Apply appropriate data-retention and privacy policies.

Deployment and configuration

For your Go environment

Review Go Monitoring.

Deploy Go Code Profiling and Usage Monitoring.

Verify the GermainUX Engine assigned to collect Go profiling data.

Configure KPIs, pivots, and measures.

Configure SLAs and alerts where required.

Configure approved automated actions.

Create or customize a dashboard.

Configure scheduled reports.

ℹ️ Get Help

The Germain Team can help you set this up. Contact GermainUX Support.

 

Feature Availability: 2017.1 or later