> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure Analytics, Automation, Dashboard and Report for GoLang

> After deploying Go code profiling and usage monitoring, verify that GermainUX is receiving profiling data from the Go application.

Components
[`Engine`](https://docs.germainux.com/main/germain-ux-engine)
[`JS Profiler`](https://docs.germainux.com/main/germain-ux-js-profiler)
[`Mobile`](https://docs.germainux.com/main/germain-ux-mobile-app)
[`RPA Bot Recorder`](https://docs.germainux.com/main/germain-ux-rpa-bot-recorder)
[`RUM JS`](https://docs.germainux.com/main/germain-ux-rum-js)
[`RUM Extension`](https://docs.germainux.com/main/germain-ux-rum-extension)

Availability
2017.1 or later

> [card] [Verify the monitored application](#verify-the-monitored-application)
>
> Check entities are enabled

> [card] [Alerts and automated actions](#alerts-and-automated-actions)
>
> Thresholds that need attention

> [card] [Reports](#reports)
>
> Scheduled distribution of results

> [card] [Deployment and configuration](#deployment-and-configuration)
>
> Deploy Go monitoring components

## Overview

After deploying [Go code profiling and usage monitoring](https://docs.germainux.com/main/deploy-code-profiling-usage-monitoring-for-golang.md), 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  ![Configure Analytics, Automation, Dashboard and Report for GoLang: Verify the monitored application](https://mintcdn.com/germain-ux/ZJflvRMC808oZDAs/images/main/configure-analytics-automation-dashboard-and-rep-2/image-20240228-190450.png?fit=max\&auto=format\&n=ZJflvRMC808oZDAs\&q=85\&s=4fedf2a90e60fef40aecfbbf08925500) |
| Application | Application name, environment, monitored server, and ownership  ![Configure Analytics, Automation, Dashboard and Report for GoLang: Verify the monitored application, image 2](https://mintcdn.com/germain-ux/ZJflvRMC808oZDAs/images/main/configure-analytics-automation-dashboard-and-rep-2/image-20240228-190537.png?fit=max\&auto=format\&n=ZJflvRMC808oZDAs\&q=85\&s=51044dc0b11b643e75c778a259ee03bd) |
| 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  ![Configure Analytics, Automation, Dashboard and Report for GoLang: Verify the monitored application, image 3](https://mintcdn.com/germain-ux/ZJflvRMC808oZDAs/images/main/configure-analytics-automation-dashboard-and-rep-2/image-20240228-185247.png?fit=max\&auto=format\&n=ZJflvRMC808oZDAs\&q=85\&s=d12a9e76f06352715fcb96f24c6912dc) |

## 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  ![Configure Analytics, Automation, Dashboard and Report for GoLang: Go analytics](https://mintcdn.com/germain-ux/ZJflvRMC808oZDAs/images/main/configure-analytics-automation-dashboard-and-rep-2/image-20240228-185153.png?fit=max\&auto=format\&n=ZJflvRMC808oZDAs\&q=85\&s=1e4ca2ad7af8985de7c3f763ba1b47f0) |
| 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](https://docs.germainux.com/main/germain-ux-engine.md). 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](https://docs.germainux.com/main/slas.md) 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](https://docs.germainux.com/main/data-categorization.md) 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](https://docs.germainux.com/main/correlation-and-tracing.md) 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](https://docs.germainux.com/main/alert-email-and-sms.md) 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](https://docs.germainux.com/main/automation.md) 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](https://docs.germainux.com/main/management-dashboards.md) 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](https://docs.germainux.com/main/reporting-automatic.md) 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

* Review [Go Monitoring](https://docs.germainux.com/main/golang-monitoring.md).
* [Deploy Go Code Profiling and Usage Monitoring](https://docs.germainux.com/main/deploy-code-profiling-usage-monitoring-for-golang.md).
* Verify the [GermainUX Engine](https://docs.germainux.com/main/germain-ux-engine.md) assigned to collect Go profiling data.
* Configure KPIs, pivots, and measures.
* Configure [SLAs](https://docs.germainux.com/main/slas.md) and [alerts](https://docs.germainux.com/main/alert-email-and-sms.md) where required.
* Configure approved [automated actions](https://docs.germainux.com/main/automation.md).
* Create or customize a [dashboard](https://docs.germainux.com/main/management-dashboards.md).
* Configure scheduled [reports](https://docs.germainux.com/main/reporting-automatic.md).

## Get Help

> [card] [Contact GermainUX Support](https://docs.germainux.com/main/support.md)
>
> The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

> [card] Can't find what you need?
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.