Skip to main content
Skip table of contents

Golang Monitoring

Features for GoLang

Germain can monitor uptime, performance and usage of GoLang application. And it is customizable to your needs, as any other features.

Dependencies and External Services

If your Go application relies on external services or databases, Germain monitors their availability and response times and tracks metrics related to connection pools, query execution times, and error rates to ensure smooth interactions with dependencies.

Error Monitoring

Germain keeps track of errors and exceptions occurring in your Go application. It monitors and log error messages to identify and debug issues promptly.

Garbage Collection

Germain monitors garbage collection metrics (e.g. pause times, heap size, and allocation rates to optimize memory usage and prevent performance degradation caused by excessive garbage collection).

Goroutine and Concurrency Monitoring

Germain monitors the number of goroutines and their behavior to identify any potential issues such as goroutine leaks or excessive resource consumption.

HTTP Server Metrics

If your Go application serves HTTP requests, Germain monitors server metrics like request rates, response codes, and response sizes. It also keeps an eye on the number of active connections to ensure your application can handle the expected load.

Log Analysis

Germain analyzes logs, that helps track the flow of requests, identifying bottlenecks, and troubleshooting issues across different components.

Performance Profiling

Germain profiles GoLang Code to identify performance bottlenecks and optimize critical sections of your code.

Resource Usage

Germain monitors the CPU and memory usage of your Go application to ensure it's performing efficiently and not causing any resource bottlenecks.

Response Time

Germain measures the response time of your Go application to gauge its performance and user experience. It also monitors the latency of HTTP requests or any other relevant communication channels to ensure timely responses.

KPIs

Preconfigured KPI and you can always create your own KPI.

  • GoLang CPU Sampler

  • GoLang Heap Usage

  • GoLang GoRoutine Count

Dashboard and Portlets

Preconfigured Dashboard, and you can always create your own:

GoLang Performance Trend on Aggregate Dashboard - Germain UX

GoLang Transaction Performance Analysis on RCA Dashboard - Germain UX

Configure

Add Golang profiling to you application

The official Golang documentation best explains how to add the ‘pprof’ package, and start a listener for 'pprof' in your GoLang application: https://golang.org/pkg/net/http/pprof/

Import Golang settings into Germain

The setting json files are available here

[service-disto]/install/configuration/golang/

You will need to import:

  • germain.apm.monitoringConfig.components.json

  • germain.apm.monitoringConfig.keyPerformanceIndicators.json

  • germain.apm.workspace.rcaDashboards.json

Optionally you can import a pre-made Golang Dasboard

  • germain.apm.workspace.dashboards.json

Go to Germain Workspace > Left Menu > Wizard > Golang

GoLang Wizard - Germain UX

Enter ‘Monitored Server’, ‘Port’, ‘Monitored Application’ and ‘Read Timeout’

GoLang Parameters - Germain UX

Unless you have special configuration, you can click 'skip'

GoLang Wizard (2) - Germain UX

Choose a 'Monitor Name', ‘Monitoring Node’, ‘Engine’

Set a schedule to run the Monitor on

GoLang Wizard (3) - Germain UX

Check whether it is running on the State screen

GoLang Agent Running Status on State Dashboard - Germain UX

GoLang Agent Detailed Running Status on State Dashboard - Germain UX

Feature Availability: 8.6.0 or later

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.