mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 21:27:42 +00:00
feat: enable application performance profiling (#8442)
# Which Problems Are Solved To have more insight on the performance, CPU and memory usage of ZITADEL, we want to enable profiling. # How the Problems Are Solved - Allow profiling by configuration. - Provide Google Cloud Profiler as first implementation # Additional Changes None. # Additional Context There were possible memory leaks reported: https://discord.com/channels/927474939156643850/1273210227918897152 Co-authored-by: Silvan <silvan.reusser@gmail.com>
This commit is contained in:
@@ -25,6 +25,18 @@ Tracing:
|
||||
# The endpoint of the otel collector endpoint
|
||||
Endpoint: "" #ZITADEL_TRACING_ENDPOINT
|
||||
|
||||
# Profiler enables capturing profiling data (CPU, Memory, ...) for performance analysis
|
||||
Profiler:
|
||||
# Choose one of "google" and "none"
|
||||
# Depending on the type there are different configuration options
|
||||
# for type 'google'
|
||||
# ProjectID: google-project-id
|
||||
#
|
||||
# type 'none' or '' disables profiling
|
||||
Type: none # ZITADEL_PROFILER_TYPE
|
||||
# projectID for google
|
||||
ProjectID: '' # ZITADEL_PROFILER_PROJECTID
|
||||
|
||||
Telemetry:
|
||||
# As long as Enabled is true, ZITADEL tries to send usage data to the configured Telemetry.Endpoints.
|
||||
# Data is projected by ZITADEL even if Enabled is false.
|
||||
|
@@ -31,6 +31,7 @@ import (
|
||||
"github.com/zitadel/zitadel/internal/query/projection"
|
||||
static_config "github.com/zitadel/zitadel/internal/static/config"
|
||||
metrics "github.com/zitadel/zitadel/internal/telemetry/metrics/config"
|
||||
profiler "github.com/zitadel/zitadel/internal/telemetry/profiler/config"
|
||||
tracing "github.com/zitadel/zitadel/internal/telemetry/tracing/config"
|
||||
)
|
||||
|
||||
@@ -49,6 +50,7 @@ type Config struct {
|
||||
Database database.Config
|
||||
Tracing tracing.Config
|
||||
Metrics metrics.Config
|
||||
Profiler profiler.Config
|
||||
Projections projection.Config
|
||||
Auth auth_es.Config
|
||||
Admin admin_es.Config
|
||||
@@ -114,6 +116,9 @@ func MustNewConfig(v *viper.Viper) *Config {
|
||||
err = config.Metrics.NewMeter()
|
||||
logging.OnError(err).Fatal("unable to set meter")
|
||||
|
||||
err = config.Profiler.NewProfiler()
|
||||
logging.OnError(err).Fatal("unable to set profiler")
|
||||
|
||||
id.Configure(config.Machine)
|
||||
actions.SetHTTPConfig(&config.Actions.HTTP)
|
||||
|
||||
|
Reference in New Issue
Block a user