From 292b51f3990855949630f33b0185bf6dd651bfba Mon Sep 17 00:00:00 2001 From: Michael Okoko Date: Mon, 27 Oct 2025 23:20:13 +0100 Subject: [PATCH 1/9] set up agent environment variables --- admin/commands/management/add_mongodb.go | 3 + agent/agents/mongodb/mongolog/mongodb.go | 1 + agent/agents/mongodb/profiler/mongodb.go | 1 + agent/agents/supervisor/supervisor.go | 2 + api/agent/v1/agent.pb.go | 507 +++++++++--------- api/agent/v1/agent.pb.validate.go | 2 + api/agent/v1/agent.proto | 2 + api/inventory/v1/agents.pb.go | 345 ++++++------ api/inventory/v1/agents.pb.validate.go | 6 + api/inventory/v1/agents.proto | 10 +- .../agents_service/add_agent_responses.go | 9 + api/inventory/v1/json/v1.json | 24 + .../add_service_responses.go | 3 + api/management/v1/json/v1.json | 8 + api/management/v1/mongodb.pb.go | 67 ++- api/management/v1/mongodb.pb.validate.go | 2 + api/management/v1/mongodb.proto | 2 + api/swagger/swagger-dev.json | 32 ++ api/swagger/swagger.json | 32 ++ managed/models/agent_helpers.go | 2 + managed/models/agent_model.go | 17 +- managed/services/agents/mongodb.go | 8 +- 22 files changed, 652 insertions(+), 433 deletions(-) diff --git a/admin/commands/management/add_mongodb.go b/admin/commands/management/add_mongodb.go index dbe9a78db00..68582a99eee 100644 --- a/admin/commands/management/add_mongodb.go +++ b/admin/commands/management/add_mongodb.go @@ -82,6 +82,7 @@ type AddMongoDBCommand struct { StatsCollections []string `help:"Collections for collstats & indexstats"` CollectionsLimit int32 `name:"max-collections-limit" default:"-1" help:"Disable collstats, dbstats, topmetrics and indexstats if there are more than collections. 0: No limit. Default is -1, which let PMM automatically set this value"` ExposeExporter bool `name:"expose-exporter" help:"Optionally expose the address of the exporter publicly on 0.0.0.0"` + AgentEnvVars map[string]string `name:"agent-env-vars" mapsep:"," help:"Additional environment variables for the exporter, e.g. 'VAR1=value1,VAR2=value2'"` AddCommonFlags flags.MetricsModeFlags @@ -125,6 +126,7 @@ func (cmd *AddMongoDBCommand) GetCredentials() error { // RunCmd runs the command for AddMongoDBCommand. func (cmd *AddMongoDBCommand) RunCmd() (commands.Result, error) { customLabels := commands.ParseKeyValuePair(cmd.CustomLabels) + agentVars := commands.ParseKeyValuePair(cmd.AgentEnvVars) tlsCertificateKey, err := commands.ReadFile(cmd.TLSCertificateKeyFile) if err != nil { @@ -180,6 +182,7 @@ func (cmd *AddMongoDBCommand) RunCmd() (commands.Result, error) { QANMongodbMongolog: cmd.QuerySource == MongodbQuerySourceMongolog, CustomLabels: customLabels, + AgentEnvironmentVariables: agentVars, SkipConnectionCheck: cmd.SkipConnectionCheck, MaxQueryLength: cmd.MaxQueryLength, TLS: cmd.TLS, diff --git a/agent/agents/mongodb/mongolog/mongodb.go b/agent/agents/mongodb/mongolog/mongodb.go index 81863a51425..2e682836d39 100644 --- a/agent/agents/mongodb/mongolog/mongodb.go +++ b/agent/agents/mongodb/mongolog/mongodb.go @@ -45,6 +45,7 @@ type Params struct { AgentID string LogFilePrefix string // for development and testing MaxQueryLength int32 + Env map[string]string } // New creates new MongoDB QAN service. diff --git a/agent/agents/mongodb/profiler/mongodb.go b/agent/agents/mongodb/profiler/mongodb.go index ead0a5e397b..3a73f82e28a 100644 --- a/agent/agents/mongodb/profiler/mongodb.go +++ b/agent/agents/mongodb/profiler/mongodb.go @@ -43,6 +43,7 @@ type Params struct { DSN string AgentID string MaxQueryLength int32 + Env map[string]string } // New creates new MongoDB QAN service. diff --git a/agent/agents/supervisor/supervisor.go b/agent/agents/supervisor/supervisor.go index 3239a2c736b..f11bb312300 100644 --- a/agent/agents/supervisor/supervisor.go +++ b/agent/agents/supervisor/supervisor.go @@ -586,6 +586,7 @@ func (s *Supervisor) startBuiltin(agentID string, builtinAgent *agentv1.SetState DSN: dsn, AgentID: agentID, MaxQueryLength: builtinAgent.MaxQueryLength, + Env: builtinAgent.Env, } agent, err = mongoprofiler.New(params, l) @@ -594,6 +595,7 @@ func (s *Supervisor) startBuiltin(agentID string, builtinAgent *agentv1.SetState DSN: dsn, AgentID: agentID, MaxQueryLength: builtinAgent.MaxQueryLength, + Env: builtinAgent.Env, } agent, err = mongolog.New(params, l) diff --git a/api/agent/v1/agent.pb.go b/api/agent/v1/agent.pb.go index e6e49e6c279..fbebba25392 100644 --- a/api/agent/v1/agent.pb.go +++ b/api/agent/v1/agent.pb.go @@ -3769,6 +3769,8 @@ type SetStateRequest_BuiltinAgent struct { Tls bool `protobuf:"varint,8,opt,name=tls,proto3" json:"tls,omitempty"` // TLS certificate wont be verified. TlsSkipVerify bool `protobuf:"varint,9,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3" json:"tls_skip_verify,omitempty"` + // environment variables to be passed to the built-in agent. + Env map[string]string `protobuf:"bytes,10,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -3866,6 +3868,13 @@ func (x *SetStateRequest_BuiltinAgent) GetTlsSkipVerify() bool { return false } +func (x *SetStateRequest_BuiltinAgent) GetEnv() map[string]string { + if x != nil { + return x.Env + } + return nil +} + // MySQLExplainParams describes MySQL EXPLAIN action parameters. type StartActionRequest_MySQLExplainParams struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -3885,7 +3894,7 @@ type StartActionRequest_MySQLExplainParams struct { func (x *StartActionRequest_MySQLExplainParams) Reset() { *x = StartActionRequest_MySQLExplainParams{} - mi := &file_agent_v1_agent_proto_msgTypes[49] + mi := &file_agent_v1_agent_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3897,7 +3906,7 @@ func (x *StartActionRequest_MySQLExplainParams) String() string { func (*StartActionRequest_MySQLExplainParams) ProtoMessage() {} func (x *StartActionRequest_MySQLExplainParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[49] + mi := &file_agent_v1_agent_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3978,7 +3987,7 @@ type StartActionRequest_MySQLShowCreateTableParams struct { func (x *StartActionRequest_MySQLShowCreateTableParams) Reset() { *x = StartActionRequest_MySQLShowCreateTableParams{} - mi := &file_agent_v1_agent_proto_msgTypes[50] + mi := &file_agent_v1_agent_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3990,7 +3999,7 @@ func (x *StartActionRequest_MySQLShowCreateTableParams) String() string { func (*StartActionRequest_MySQLShowCreateTableParams) ProtoMessage() {} func (x *StartActionRequest_MySQLShowCreateTableParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[50] + mi := &file_agent_v1_agent_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4050,7 +4059,7 @@ type StartActionRequest_MySQLShowTableStatusParams struct { func (x *StartActionRequest_MySQLShowTableStatusParams) Reset() { *x = StartActionRequest_MySQLShowTableStatusParams{} - mi := &file_agent_v1_agent_proto_msgTypes[51] + mi := &file_agent_v1_agent_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4062,7 +4071,7 @@ func (x *StartActionRequest_MySQLShowTableStatusParams) String() string { func (*StartActionRequest_MySQLShowTableStatusParams) ProtoMessage() {} func (x *StartActionRequest_MySQLShowTableStatusParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[51] + mi := &file_agent_v1_agent_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4122,7 +4131,7 @@ type StartActionRequest_MySQLShowIndexParams struct { func (x *StartActionRequest_MySQLShowIndexParams) Reset() { *x = StartActionRequest_MySQLShowIndexParams{} - mi := &file_agent_v1_agent_proto_msgTypes[52] + mi := &file_agent_v1_agent_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4134,7 +4143,7 @@ func (x *StartActionRequest_MySQLShowIndexParams) String() string { func (*StartActionRequest_MySQLShowIndexParams) ProtoMessage() {} func (x *StartActionRequest_MySQLShowIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[52] + mi := &file_agent_v1_agent_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4194,7 +4203,7 @@ type StartActionRequest_PostgreSQLShowCreateTableParams struct { func (x *StartActionRequest_PostgreSQLShowCreateTableParams) Reset() { *x = StartActionRequest_PostgreSQLShowCreateTableParams{} - mi := &file_agent_v1_agent_proto_msgTypes[53] + mi := &file_agent_v1_agent_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4206,7 +4215,7 @@ func (x *StartActionRequest_PostgreSQLShowCreateTableParams) String() string { func (*StartActionRequest_PostgreSQLShowCreateTableParams) ProtoMessage() {} func (x *StartActionRequest_PostgreSQLShowCreateTableParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[53] + mi := &file_agent_v1_agent_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4266,7 +4275,7 @@ type StartActionRequest_PostgreSQLShowIndexParams struct { func (x *StartActionRequest_PostgreSQLShowIndexParams) Reset() { *x = StartActionRequest_PostgreSQLShowIndexParams{} - mi := &file_agent_v1_agent_proto_msgTypes[54] + mi := &file_agent_v1_agent_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4278,7 +4287,7 @@ func (x *StartActionRequest_PostgreSQLShowIndexParams) String() string { func (*StartActionRequest_PostgreSQLShowIndexParams) ProtoMessage() {} func (x *StartActionRequest_PostgreSQLShowIndexParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[54] + mi := &file_agent_v1_agent_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4337,7 +4346,7 @@ type StartActionRequest_MongoDBExplainParams struct { func (x *StartActionRequest_MongoDBExplainParams) Reset() { *x = StartActionRequest_MongoDBExplainParams{} - mi := &file_agent_v1_agent_proto_msgTypes[55] + mi := &file_agent_v1_agent_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4349,7 +4358,7 @@ func (x *StartActionRequest_MongoDBExplainParams) String() string { func (*StartActionRequest_MongoDBExplainParams) ProtoMessage() {} func (x *StartActionRequest_MongoDBExplainParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[55] + mi := &file_agent_v1_agent_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4395,7 +4404,7 @@ type StartActionRequest_PTSummaryParams struct { func (x *StartActionRequest_PTSummaryParams) Reset() { *x = StartActionRequest_PTSummaryParams{} - mi := &file_agent_v1_agent_proto_msgTypes[56] + mi := &file_agent_v1_agent_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4407,7 +4416,7 @@ func (x *StartActionRequest_PTSummaryParams) String() string { func (*StartActionRequest_PTSummaryParams) ProtoMessage() {} func (x *StartActionRequest_PTSummaryParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[56] + mi := &file_agent_v1_agent_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4436,7 +4445,7 @@ type StartActionRequest_PTPgSummaryParams struct { func (x *StartActionRequest_PTPgSummaryParams) Reset() { *x = StartActionRequest_PTPgSummaryParams{} - mi := &file_agent_v1_agent_proto_msgTypes[57] + mi := &file_agent_v1_agent_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4448,7 +4457,7 @@ func (x *StartActionRequest_PTPgSummaryParams) String() string { func (*StartActionRequest_PTPgSummaryParams) ProtoMessage() {} func (x *StartActionRequest_PTPgSummaryParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[57] + mi := &file_agent_v1_agent_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4505,7 +4514,7 @@ type StartActionRequest_PTMongoDBSummaryParams struct { func (x *StartActionRequest_PTMongoDBSummaryParams) Reset() { *x = StartActionRequest_PTMongoDBSummaryParams{} - mi := &file_agent_v1_agent_proto_msgTypes[58] + mi := &file_agent_v1_agent_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4517,7 +4526,7 @@ func (x *StartActionRequest_PTMongoDBSummaryParams) String() string { func (*StartActionRequest_PTMongoDBSummaryParams) ProtoMessage() {} func (x *StartActionRequest_PTMongoDBSummaryParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[58] + mi := &file_agent_v1_agent_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4575,7 +4584,7 @@ type StartActionRequest_PTMySQLSummaryParams struct { func (x *StartActionRequest_PTMySQLSummaryParams) Reset() { *x = StartActionRequest_PTMySQLSummaryParams{} - mi := &file_agent_v1_agent_proto_msgTypes[59] + mi := &file_agent_v1_agent_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4587,7 +4596,7 @@ func (x *StartActionRequest_PTMySQLSummaryParams) String() string { func (*StartActionRequest_PTMySQLSummaryParams) ProtoMessage() {} func (x *StartActionRequest_PTMySQLSummaryParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[59] + mi := &file_agent_v1_agent_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4655,7 +4664,7 @@ type StartActionRequest_MySQLQueryShowParams struct { func (x *StartActionRequest_MySQLQueryShowParams) Reset() { *x = StartActionRequest_MySQLQueryShowParams{} - mi := &file_agent_v1_agent_proto_msgTypes[60] + mi := &file_agent_v1_agent_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4667,7 +4676,7 @@ func (x *StartActionRequest_MySQLQueryShowParams) String() string { func (*StartActionRequest_MySQLQueryShowParams) ProtoMessage() {} func (x *StartActionRequest_MySQLQueryShowParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[60] + mi := &file_agent_v1_agent_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4728,7 +4737,7 @@ type StartActionRequest_MySQLQuerySelectParams struct { func (x *StartActionRequest_MySQLQuerySelectParams) Reset() { *x = StartActionRequest_MySQLQuerySelectParams{} - mi := &file_agent_v1_agent_proto_msgTypes[61] + mi := &file_agent_v1_agent_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4740,7 +4749,7 @@ func (x *StartActionRequest_MySQLQuerySelectParams) String() string { func (*StartActionRequest_MySQLQuerySelectParams) ProtoMessage() {} func (x *StartActionRequest_MySQLQuerySelectParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[61] + mi := &file_agent_v1_agent_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4799,7 +4808,7 @@ type StartActionRequest_PostgreSQLQueryShowParams struct { func (x *StartActionRequest_PostgreSQLQueryShowParams) Reset() { *x = StartActionRequest_PostgreSQLQueryShowParams{} - mi := &file_agent_v1_agent_proto_msgTypes[62] + mi := &file_agent_v1_agent_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4811,7 +4820,7 @@ func (x *StartActionRequest_PostgreSQLQueryShowParams) String() string { func (*StartActionRequest_PostgreSQLQueryShowParams) ProtoMessage() {} func (x *StartActionRequest_PostgreSQLQueryShowParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[62] + mi := &file_agent_v1_agent_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4865,7 +4874,7 @@ type StartActionRequest_PostgreSQLQuerySelectParams struct { func (x *StartActionRequest_PostgreSQLQuerySelectParams) Reset() { *x = StartActionRequest_PostgreSQLQuerySelectParams{} - mi := &file_agent_v1_agent_proto_msgTypes[63] + mi := &file_agent_v1_agent_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4877,7 +4886,7 @@ func (x *StartActionRequest_PostgreSQLQuerySelectParams) String() string { func (*StartActionRequest_PostgreSQLQuerySelectParams) ProtoMessage() {} func (x *StartActionRequest_PostgreSQLQuerySelectParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[63] + mi := &file_agent_v1_agent_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4935,7 +4944,7 @@ type StartActionRequest_MongoDBQueryGetParameterParams struct { func (x *StartActionRequest_MongoDBQueryGetParameterParams) Reset() { *x = StartActionRequest_MongoDBQueryGetParameterParams{} - mi := &file_agent_v1_agent_proto_msgTypes[64] + mi := &file_agent_v1_agent_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4947,7 +4956,7 @@ func (x *StartActionRequest_MongoDBQueryGetParameterParams) String() string { func (*StartActionRequest_MongoDBQueryGetParameterParams) ProtoMessage() {} func (x *StartActionRequest_MongoDBQueryGetParameterParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[64] + mi := &file_agent_v1_agent_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4991,7 +5000,7 @@ type StartActionRequest_MongoDBQueryBuildInfoParams struct { func (x *StartActionRequest_MongoDBQueryBuildInfoParams) Reset() { *x = StartActionRequest_MongoDBQueryBuildInfoParams{} - mi := &file_agent_v1_agent_proto_msgTypes[65] + mi := &file_agent_v1_agent_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5003,7 +5012,7 @@ func (x *StartActionRequest_MongoDBQueryBuildInfoParams) String() string { func (*StartActionRequest_MongoDBQueryBuildInfoParams) ProtoMessage() {} func (x *StartActionRequest_MongoDBQueryBuildInfoParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[65] + mi := &file_agent_v1_agent_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5047,7 +5056,7 @@ type StartActionRequest_MongoDBQueryGetCmdLineOptsParams struct { func (x *StartActionRequest_MongoDBQueryGetCmdLineOptsParams) Reset() { *x = StartActionRequest_MongoDBQueryGetCmdLineOptsParams{} - mi := &file_agent_v1_agent_proto_msgTypes[66] + mi := &file_agent_v1_agent_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5059,7 +5068,7 @@ func (x *StartActionRequest_MongoDBQueryGetCmdLineOptsParams) String() string { func (*StartActionRequest_MongoDBQueryGetCmdLineOptsParams) ProtoMessage() {} func (x *StartActionRequest_MongoDBQueryGetCmdLineOptsParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[66] + mi := &file_agent_v1_agent_proto_msgTypes[67] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5103,7 +5112,7 @@ type StartActionRequest_MongoDBQueryReplSetGetStatusParams struct { func (x *StartActionRequest_MongoDBQueryReplSetGetStatusParams) Reset() { *x = StartActionRequest_MongoDBQueryReplSetGetStatusParams{} - mi := &file_agent_v1_agent_proto_msgTypes[67] + mi := &file_agent_v1_agent_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5115,7 +5124,7 @@ func (x *StartActionRequest_MongoDBQueryReplSetGetStatusParams) String() string func (*StartActionRequest_MongoDBQueryReplSetGetStatusParams) ProtoMessage() {} func (x *StartActionRequest_MongoDBQueryReplSetGetStatusParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[67] + mi := &file_agent_v1_agent_proto_msgTypes[68] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5159,7 +5168,7 @@ type StartActionRequest_MongoDBQueryGetDiagnosticDataParams struct { func (x *StartActionRequest_MongoDBQueryGetDiagnosticDataParams) Reset() { *x = StartActionRequest_MongoDBQueryGetDiagnosticDataParams{} - mi := &file_agent_v1_agent_proto_msgTypes[68] + mi := &file_agent_v1_agent_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5171,7 +5180,7 @@ func (x *StartActionRequest_MongoDBQueryGetDiagnosticDataParams) String() string func (*StartActionRequest_MongoDBQueryGetDiagnosticDataParams) ProtoMessage() {} func (x *StartActionRequest_MongoDBQueryGetDiagnosticDataParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[68] + mi := &file_agent_v1_agent_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5211,7 +5220,7 @@ type StartActionRequest_RestartSystemServiceParams struct { func (x *StartActionRequest_RestartSystemServiceParams) Reset() { *x = StartActionRequest_RestartSystemServiceParams{} - mi := &file_agent_v1_agent_proto_msgTypes[69] + mi := &file_agent_v1_agent_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5223,7 +5232,7 @@ func (x *StartActionRequest_RestartSystemServiceParams) String() string { func (*StartActionRequest_RestartSystemServiceParams) ProtoMessage() {} func (x *StartActionRequest_RestartSystemServiceParams) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[69] + mi := &file_agent_v1_agent_proto_msgTypes[70] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5257,7 +5266,7 @@ type CheckConnectionResponse_Stats struct { func (x *CheckConnectionResponse_Stats) Reset() { *x = CheckConnectionResponse_Stats{} - mi := &file_agent_v1_agent_proto_msgTypes[70] + mi := &file_agent_v1_agent_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5269,7 +5278,7 @@ func (x *CheckConnectionResponse_Stats) String() string { func (*CheckConnectionResponse_Stats) ProtoMessage() {} func (x *CheckConnectionResponse_Stats) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[70] + mi := &file_agent_v1_agent_proto_msgTypes[71] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5321,7 +5330,7 @@ type StartJobRequest_MySQLBackup struct { func (x *StartJobRequest_MySQLBackup) Reset() { *x = StartJobRequest_MySQLBackup{} - mi := &file_agent_v1_agent_proto_msgTypes[71] + mi := &file_agent_v1_agent_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5333,7 +5342,7 @@ func (x *StartJobRequest_MySQLBackup) String() string { func (*StartJobRequest_MySQLBackup) ProtoMessage() {} func (x *StartJobRequest_MySQLBackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[71] + mi := &file_agent_v1_agent_proto_msgTypes[72] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5445,7 +5454,7 @@ type StartJobRequest_MySQLRestoreBackup struct { func (x *StartJobRequest_MySQLRestoreBackup) Reset() { *x = StartJobRequest_MySQLRestoreBackup{} - mi := &file_agent_v1_agent_proto_msgTypes[72] + mi := &file_agent_v1_agent_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5457,7 +5466,7 @@ func (x *StartJobRequest_MySQLRestoreBackup) String() string { func (*StartJobRequest_MySQLRestoreBackup) ProtoMessage() {} func (x *StartJobRequest_MySQLRestoreBackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[72] + mi := &file_agent_v1_agent_proto_msgTypes[73] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5550,7 +5559,7 @@ type StartJobRequest_MongoDBBackup struct { func (x *StartJobRequest_MongoDBBackup) Reset() { *x = StartJobRequest_MongoDBBackup{} - mi := &file_agent_v1_agent_proto_msgTypes[73] + mi := &file_agent_v1_agent_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5562,7 +5571,7 @@ func (x *StartJobRequest_MongoDBBackup) String() string { func (*StartJobRequest_MongoDBBackup) ProtoMessage() {} func (x *StartJobRequest_MongoDBBackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[73] + mi := &file_agent_v1_agent_proto_msgTypes[74] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5691,7 +5700,7 @@ type StartJobRequest_MongoDBRestoreBackup struct { func (x *StartJobRequest_MongoDBRestoreBackup) Reset() { *x = StartJobRequest_MongoDBRestoreBackup{} - mi := &file_agent_v1_agent_proto_msgTypes[74] + mi := &file_agent_v1_agent_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5703,7 +5712,7 @@ func (x *StartJobRequest_MongoDBRestoreBackup) String() string { func (*StartJobRequest_MongoDBRestoreBackup) ProtoMessage() {} func (x *StartJobRequest_MongoDBRestoreBackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[74] + mi := &file_agent_v1_agent_proto_msgTypes[75] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5814,7 +5823,7 @@ type JobResult_Error struct { func (x *JobResult_Error) Reset() { *x = JobResult_Error{} - mi := &file_agent_v1_agent_proto_msgTypes[75] + mi := &file_agent_v1_agent_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5826,7 +5835,7 @@ func (x *JobResult_Error) String() string { func (*JobResult_Error) ProtoMessage() {} func (x *JobResult_Error) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[75] + mi := &file_agent_v1_agent_proto_msgTypes[76] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5861,7 +5870,7 @@ type JobResult_MongoDBBackup struct { func (x *JobResult_MongoDBBackup) Reset() { *x = JobResult_MongoDBBackup{} - mi := &file_agent_v1_agent_proto_msgTypes[76] + mi := &file_agent_v1_agent_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5873,7 +5882,7 @@ func (x *JobResult_MongoDBBackup) String() string { func (*JobResult_MongoDBBackup) ProtoMessage() {} func (x *JobResult_MongoDBBackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[76] + mi := &file_agent_v1_agent_proto_msgTypes[77] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5914,7 +5923,7 @@ type JobResult_MySQLBackup struct { func (x *JobResult_MySQLBackup) Reset() { *x = JobResult_MySQLBackup{} - mi := &file_agent_v1_agent_proto_msgTypes[77] + mi := &file_agent_v1_agent_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5926,7 +5935,7 @@ func (x *JobResult_MySQLBackup) String() string { func (*JobResult_MySQLBackup) ProtoMessage() {} func (x *JobResult_MySQLBackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[77] + mi := &file_agent_v1_agent_proto_msgTypes[78] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5958,7 +5967,7 @@ type JobResult_MySQLRestoreBackup struct { func (x *JobResult_MySQLRestoreBackup) Reset() { *x = JobResult_MySQLRestoreBackup{} - mi := &file_agent_v1_agent_proto_msgTypes[78] + mi := &file_agent_v1_agent_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5970,7 +5979,7 @@ func (x *JobResult_MySQLRestoreBackup) String() string { func (*JobResult_MySQLRestoreBackup) ProtoMessage() {} func (x *JobResult_MySQLRestoreBackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[78] + mi := &file_agent_v1_agent_proto_msgTypes[79] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5995,7 +6004,7 @@ type JobResult_MongoDBRestoreBackup struct { func (x *JobResult_MongoDBRestoreBackup) Reset() { *x = JobResult_MongoDBRestoreBackup{} - mi := &file_agent_v1_agent_proto_msgTypes[79] + mi := &file_agent_v1_agent_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6007,7 +6016,7 @@ func (x *JobResult_MongoDBRestoreBackup) String() string { func (*JobResult_MongoDBRestoreBackup) ProtoMessage() {} func (x *JobResult_MongoDBRestoreBackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[79] + mi := &file_agent_v1_agent_proto_msgTypes[80] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6032,7 +6041,7 @@ type JobProgress_MySQLBackup struct { func (x *JobProgress_MySQLBackup) Reset() { *x = JobProgress_MySQLBackup{} - mi := &file_agent_v1_agent_proto_msgTypes[80] + mi := &file_agent_v1_agent_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6044,7 +6053,7 @@ func (x *JobProgress_MySQLBackup) String() string { func (*JobProgress_MySQLBackup) ProtoMessage() {} func (x *JobProgress_MySQLBackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[80] + mi := &file_agent_v1_agent_proto_msgTypes[81] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6069,7 +6078,7 @@ type JobProgress_MySQLRestoreBackup struct { func (x *JobProgress_MySQLRestoreBackup) Reset() { *x = JobProgress_MySQLRestoreBackup{} - mi := &file_agent_v1_agent_proto_msgTypes[81] + mi := &file_agent_v1_agent_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6081,7 +6090,7 @@ func (x *JobProgress_MySQLRestoreBackup) String() string { func (*JobProgress_MySQLRestoreBackup) ProtoMessage() {} func (x *JobProgress_MySQLRestoreBackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[81] + mi := &file_agent_v1_agent_proto_msgTypes[82] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6109,7 +6118,7 @@ type JobProgress_Logs struct { func (x *JobProgress_Logs) Reset() { *x = JobProgress_Logs{} - mi := &file_agent_v1_agent_proto_msgTypes[82] + mi := &file_agent_v1_agent_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6121,7 +6130,7 @@ func (x *JobProgress_Logs) String() string { func (*JobProgress_Logs) ProtoMessage() {} func (x *JobProgress_Logs) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[82] + mi := &file_agent_v1_agent_proto_msgTypes[83] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6167,7 +6176,7 @@ type GetVersionsRequest_MySQLd struct { func (x *GetVersionsRequest_MySQLd) Reset() { *x = GetVersionsRequest_MySQLd{} - mi := &file_agent_v1_agent_proto_msgTypes[83] + mi := &file_agent_v1_agent_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6179,7 +6188,7 @@ func (x *GetVersionsRequest_MySQLd) String() string { func (*GetVersionsRequest_MySQLd) ProtoMessage() {} func (x *GetVersionsRequest_MySQLd) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[83] + mi := &file_agent_v1_agent_proto_msgTypes[84] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6204,7 +6213,7 @@ type GetVersionsRequest_Xtrabackup struct { func (x *GetVersionsRequest_Xtrabackup) Reset() { *x = GetVersionsRequest_Xtrabackup{} - mi := &file_agent_v1_agent_proto_msgTypes[84] + mi := &file_agent_v1_agent_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6216,7 +6225,7 @@ func (x *GetVersionsRequest_Xtrabackup) String() string { func (*GetVersionsRequest_Xtrabackup) ProtoMessage() {} func (x *GetVersionsRequest_Xtrabackup) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[84] + mi := &file_agent_v1_agent_proto_msgTypes[85] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6241,7 +6250,7 @@ type GetVersionsRequest_Xbcloud struct { func (x *GetVersionsRequest_Xbcloud) Reset() { *x = GetVersionsRequest_Xbcloud{} - mi := &file_agent_v1_agent_proto_msgTypes[85] + mi := &file_agent_v1_agent_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6253,7 +6262,7 @@ func (x *GetVersionsRequest_Xbcloud) String() string { func (*GetVersionsRequest_Xbcloud) ProtoMessage() {} func (x *GetVersionsRequest_Xbcloud) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[85] + mi := &file_agent_v1_agent_proto_msgTypes[86] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6278,7 +6287,7 @@ type GetVersionsRequest_Qpress struct { func (x *GetVersionsRequest_Qpress) Reset() { *x = GetVersionsRequest_Qpress{} - mi := &file_agent_v1_agent_proto_msgTypes[86] + mi := &file_agent_v1_agent_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6290,7 +6299,7 @@ func (x *GetVersionsRequest_Qpress) String() string { func (*GetVersionsRequest_Qpress) ProtoMessage() {} func (x *GetVersionsRequest_Qpress) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[86] + mi := &file_agent_v1_agent_proto_msgTypes[87] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6315,7 +6324,7 @@ type GetVersionsRequest_MongoDB struct { func (x *GetVersionsRequest_MongoDB) Reset() { *x = GetVersionsRequest_MongoDB{} - mi := &file_agent_v1_agent_proto_msgTypes[87] + mi := &file_agent_v1_agent_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6327,7 +6336,7 @@ func (x *GetVersionsRequest_MongoDB) String() string { func (*GetVersionsRequest_MongoDB) ProtoMessage() {} func (x *GetVersionsRequest_MongoDB) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[87] + mi := &file_agent_v1_agent_proto_msgTypes[88] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6352,7 +6361,7 @@ type GetVersionsRequest_PBM struct { func (x *GetVersionsRequest_PBM) Reset() { *x = GetVersionsRequest_PBM{} - mi := &file_agent_v1_agent_proto_msgTypes[88] + mi := &file_agent_v1_agent_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6364,7 +6373,7 @@ func (x *GetVersionsRequest_PBM) String() string { func (*GetVersionsRequest_PBM) ProtoMessage() {} func (x *GetVersionsRequest_PBM) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[88] + mi := &file_agent_v1_agent_proto_msgTypes[89] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6398,7 +6407,7 @@ type GetVersionsRequest_Software struct { func (x *GetVersionsRequest_Software) Reset() { *x = GetVersionsRequest_Software{} - mi := &file_agent_v1_agent_proto_msgTypes[89] + mi := &file_agent_v1_agent_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6410,7 +6419,7 @@ func (x *GetVersionsRequest_Software) String() string { func (*GetVersionsRequest_Software) ProtoMessage() {} func (x *GetVersionsRequest_Software) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[89] + mi := &file_agent_v1_agent_proto_msgTypes[90] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6539,7 +6548,7 @@ type GetVersionsResponse_Version struct { func (x *GetVersionsResponse_Version) Reset() { *x = GetVersionsResponse_Version{} - mi := &file_agent_v1_agent_proto_msgTypes[90] + mi := &file_agent_v1_agent_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6551,7 +6560,7 @@ func (x *GetVersionsResponse_Version) String() string { func (*GetVersionsResponse_Version) ProtoMessage() {} func (x *GetVersionsResponse_Version) ProtoReflect() protoreflect.Message { - mi := &file_agent_v1_agent_proto_msgTypes[90] + mi := &file_agent_v1_agent_proto_msgTypes[91] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6607,7 +6616,8 @@ const file_agent_v1_agent_proto_rawDesc = "" + "listenPort\x12*\n" + "\x11process_exec_path\x18\x04 \x01(\tR\x0fprocessExecPath\x12\x18\n" + "\aversion\x18\x05 \x01(\tR\aversion\"\x16\n" + - "\x14StateChangedResponse\"\x95\t\n" + + "\x14StateChangedResponse\"\x90\n" + + "\n" + "\x0fSetStateRequest\x12V\n" + "\x0fagent_processes\x18\x01 \x03(\v2-.agent.v1.SetStateRequest.AgentProcessesEntryR\x0eagentProcesses\x12S\n" + "\x0ebuiltin_agents\x18\x02 \x03(\v2,.agent.v1.SetStateRequest.BuiltinAgentsEntryR\rbuiltinAgents\x1a\xfa\x02\n" + @@ -6625,7 +6635,7 @@ const file_agent_v1_agent_proto_rawDesc = "" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1ai\n" + "\x13AgentProcessesEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12<\n" + - "\x05value\x18\x02 \x01(\v2&.agent.v1.SetStateRequest.AgentProcessR\x05value:\x028\x01\x1a\x82\x03\n" + + "\x05value\x18\x02 \x01(\v2&.agent.v1.SetStateRequest.AgentProcessR\x05value:\x028\x01\x1a\xfd\x03\n" + "\fBuiltinAgent\x12+\n" + "\x04type\x18\x01 \x01(\x0e2\x17.inventory.v1.AgentTypeR\x04type\x12\x10\n" + "\x03dsn\x18\x02 \x01(\tR\x03dsn\x12(\n" + @@ -6636,7 +6646,12 @@ const file_agent_v1_agent_proto_rawDesc = "" + "\n" + "text_files\x18\a \x01(\v2\x13.agent.v1.TextFilesR\ttextFiles\x12\x10\n" + "\x03tls\x18\b \x01(\bR\x03tls\x12&\n" + - "\x0ftls_skip_verify\x18\t \x01(\bR\rtlsSkipVerify\x1ah\n" + + "\x0ftls_skip_verify\x18\t \x01(\bR\rtlsSkipVerify\x12A\n" + + "\x03env\x18\n" + + " \x03(\v2/.agent.v1.SetStateRequest.BuiltinAgent.EnvEntryR\x03env\x1a6\n" + + "\bEnvEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1ah\n" + "\x12BuiltinAgentsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12<\n" + "\x05value\x18\x02 \x01(\v2&.agent.v1.SetStateRequest.BuiltinAgentR\x05value:\x028\x01\"\x12\n" + @@ -7053,7 +7068,7 @@ func file_agent_v1_agent_proto_rawDescGZIP() []byte { var ( file_agent_v1_agent_proto_enumTypes = make([]protoimpl.EnumInfo, 2) - file_agent_v1_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 91) + file_agent_v1_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 92) file_agent_v1_agent_proto_goTypes = []any{ (MysqlExplainOutputFormat)(0), // 0: agent.v1.MysqlExplainOutputFormat (StartActionRequest_RestartSystemServiceParams_SystemService)(0), // 1: agent.v1.StartActionRequest.RestartSystemServiceParams.SystemService @@ -7105,124 +7120,125 @@ var ( (*SetStateRequest_BuiltinAgent)(nil), // 47: agent.v1.SetStateRequest.BuiltinAgent nil, // 48: agent.v1.SetStateRequest.BuiltinAgentsEntry nil, // 49: agent.v1.SetStateRequest.AgentProcess.TextFilesEntry - nil, // 50: agent.v1.QueryActionMap.MapEntry - (*StartActionRequest_MySQLExplainParams)(nil), // 51: agent.v1.StartActionRequest.MySQLExplainParams - (*StartActionRequest_MySQLShowCreateTableParams)(nil), // 52: agent.v1.StartActionRequest.MySQLShowCreateTableParams - (*StartActionRequest_MySQLShowTableStatusParams)(nil), // 53: agent.v1.StartActionRequest.MySQLShowTableStatusParams - (*StartActionRequest_MySQLShowIndexParams)(nil), // 54: agent.v1.StartActionRequest.MySQLShowIndexParams - (*StartActionRequest_PostgreSQLShowCreateTableParams)(nil), // 55: agent.v1.StartActionRequest.PostgreSQLShowCreateTableParams - (*StartActionRequest_PostgreSQLShowIndexParams)(nil), // 56: agent.v1.StartActionRequest.PostgreSQLShowIndexParams - (*StartActionRequest_MongoDBExplainParams)(nil), // 57: agent.v1.StartActionRequest.MongoDBExplainParams - (*StartActionRequest_PTSummaryParams)(nil), // 58: agent.v1.StartActionRequest.PTSummaryParams - (*StartActionRequest_PTPgSummaryParams)(nil), // 59: agent.v1.StartActionRequest.PTPgSummaryParams - (*StartActionRequest_PTMongoDBSummaryParams)(nil), // 60: agent.v1.StartActionRequest.PTMongoDBSummaryParams - (*StartActionRequest_PTMySQLSummaryParams)(nil), // 61: agent.v1.StartActionRequest.PTMySQLSummaryParams - (*StartActionRequest_MySQLQueryShowParams)(nil), // 62: agent.v1.StartActionRequest.MySQLQueryShowParams - (*StartActionRequest_MySQLQuerySelectParams)(nil), // 63: agent.v1.StartActionRequest.MySQLQuerySelectParams - (*StartActionRequest_PostgreSQLQueryShowParams)(nil), // 64: agent.v1.StartActionRequest.PostgreSQLQueryShowParams - (*StartActionRequest_PostgreSQLQuerySelectParams)(nil), // 65: agent.v1.StartActionRequest.PostgreSQLQuerySelectParams - (*StartActionRequest_MongoDBQueryGetParameterParams)(nil), // 66: agent.v1.StartActionRequest.MongoDBQueryGetParameterParams - (*StartActionRequest_MongoDBQueryBuildInfoParams)(nil), // 67: agent.v1.StartActionRequest.MongoDBQueryBuildInfoParams - (*StartActionRequest_MongoDBQueryGetCmdLineOptsParams)(nil), // 68: agent.v1.StartActionRequest.MongoDBQueryGetCmdLineOptsParams - (*StartActionRequest_MongoDBQueryReplSetGetStatusParams)(nil), // 69: agent.v1.StartActionRequest.MongoDBQueryReplSetGetStatusParams - (*StartActionRequest_MongoDBQueryGetDiagnosticDataParams)(nil), // 70: agent.v1.StartActionRequest.MongoDBQueryGetDiagnosticDataParams - (*StartActionRequest_RestartSystemServiceParams)(nil), // 71: agent.v1.StartActionRequest.RestartSystemServiceParams - (*CheckConnectionResponse_Stats)(nil), // 72: agent.v1.CheckConnectionResponse.Stats - (*StartJobRequest_MySQLBackup)(nil), // 73: agent.v1.StartJobRequest.MySQLBackup - (*StartJobRequest_MySQLRestoreBackup)(nil), // 74: agent.v1.StartJobRequest.MySQLRestoreBackup - (*StartJobRequest_MongoDBBackup)(nil), // 75: agent.v1.StartJobRequest.MongoDBBackup - (*StartJobRequest_MongoDBRestoreBackup)(nil), // 76: agent.v1.StartJobRequest.MongoDBRestoreBackup - (*JobResult_Error)(nil), // 77: agent.v1.JobResult.Error - (*JobResult_MongoDBBackup)(nil), // 78: agent.v1.JobResult.MongoDBBackup - (*JobResult_MySQLBackup)(nil), // 79: agent.v1.JobResult.MySQLBackup - (*JobResult_MySQLRestoreBackup)(nil), // 80: agent.v1.JobResult.MySQLRestoreBackup - (*JobResult_MongoDBRestoreBackup)(nil), // 81: agent.v1.JobResult.MongoDBRestoreBackup - (*JobProgress_MySQLBackup)(nil), // 82: agent.v1.JobProgress.MySQLBackup - (*JobProgress_MySQLRestoreBackup)(nil), // 83: agent.v1.JobProgress.MySQLRestoreBackup - (*JobProgress_Logs)(nil), // 84: agent.v1.JobProgress.Logs - (*GetVersionsRequest_MySQLd)(nil), // 85: agent.v1.GetVersionsRequest.MySQLd - (*GetVersionsRequest_Xtrabackup)(nil), // 86: agent.v1.GetVersionsRequest.Xtrabackup - (*GetVersionsRequest_Xbcloud)(nil), // 87: agent.v1.GetVersionsRequest.Xbcloud - (*GetVersionsRequest_Qpress)(nil), // 88: agent.v1.GetVersionsRequest.Qpress - (*GetVersionsRequest_MongoDB)(nil), // 89: agent.v1.GetVersionsRequest.MongoDB - (*GetVersionsRequest_PBM)(nil), // 90: agent.v1.GetVersionsRequest.PBM - (*GetVersionsRequest_Software)(nil), // 91: agent.v1.GetVersionsRequest.Software - (*GetVersionsResponse_Version)(nil), // 92: agent.v1.GetVersionsResponse.Version - (*timestamppb.Timestamp)(nil), // 93: google.protobuf.Timestamp - (*MetricsBucket)(nil), // 94: agent.v1.MetricsBucket - (v1.AgentStatus)(0), // 95: inventory.v1.AgentStatus - (*durationpb.Duration)(nil), // 96: google.protobuf.Duration - (v1.ServiceType)(0), // 97: inventory.v1.ServiceType - (*status.Status)(nil), // 98: google.rpc.Status - (v1.AgentType)(0), // 99: inventory.v1.AgentType - (v11.DataModel)(0), // 100: backup.v1.DataModel - (*v11.PbmMetadata)(nil), // 101: backup.v1.PbmMetadata - (*v11.Metadata)(nil), // 102: backup.v1.Metadata + nil, // 50: agent.v1.SetStateRequest.BuiltinAgent.EnvEntry + nil, // 51: agent.v1.QueryActionMap.MapEntry + (*StartActionRequest_MySQLExplainParams)(nil), // 52: agent.v1.StartActionRequest.MySQLExplainParams + (*StartActionRequest_MySQLShowCreateTableParams)(nil), // 53: agent.v1.StartActionRequest.MySQLShowCreateTableParams + (*StartActionRequest_MySQLShowTableStatusParams)(nil), // 54: agent.v1.StartActionRequest.MySQLShowTableStatusParams + (*StartActionRequest_MySQLShowIndexParams)(nil), // 55: agent.v1.StartActionRequest.MySQLShowIndexParams + (*StartActionRequest_PostgreSQLShowCreateTableParams)(nil), // 56: agent.v1.StartActionRequest.PostgreSQLShowCreateTableParams + (*StartActionRequest_PostgreSQLShowIndexParams)(nil), // 57: agent.v1.StartActionRequest.PostgreSQLShowIndexParams + (*StartActionRequest_MongoDBExplainParams)(nil), // 58: agent.v1.StartActionRequest.MongoDBExplainParams + (*StartActionRequest_PTSummaryParams)(nil), // 59: agent.v1.StartActionRequest.PTSummaryParams + (*StartActionRequest_PTPgSummaryParams)(nil), // 60: agent.v1.StartActionRequest.PTPgSummaryParams + (*StartActionRequest_PTMongoDBSummaryParams)(nil), // 61: agent.v1.StartActionRequest.PTMongoDBSummaryParams + (*StartActionRequest_PTMySQLSummaryParams)(nil), // 62: agent.v1.StartActionRequest.PTMySQLSummaryParams + (*StartActionRequest_MySQLQueryShowParams)(nil), // 63: agent.v1.StartActionRequest.MySQLQueryShowParams + (*StartActionRequest_MySQLQuerySelectParams)(nil), // 64: agent.v1.StartActionRequest.MySQLQuerySelectParams + (*StartActionRequest_PostgreSQLQueryShowParams)(nil), // 65: agent.v1.StartActionRequest.PostgreSQLQueryShowParams + (*StartActionRequest_PostgreSQLQuerySelectParams)(nil), // 66: agent.v1.StartActionRequest.PostgreSQLQuerySelectParams + (*StartActionRequest_MongoDBQueryGetParameterParams)(nil), // 67: agent.v1.StartActionRequest.MongoDBQueryGetParameterParams + (*StartActionRequest_MongoDBQueryBuildInfoParams)(nil), // 68: agent.v1.StartActionRequest.MongoDBQueryBuildInfoParams + (*StartActionRequest_MongoDBQueryGetCmdLineOptsParams)(nil), // 69: agent.v1.StartActionRequest.MongoDBQueryGetCmdLineOptsParams + (*StartActionRequest_MongoDBQueryReplSetGetStatusParams)(nil), // 70: agent.v1.StartActionRequest.MongoDBQueryReplSetGetStatusParams + (*StartActionRequest_MongoDBQueryGetDiagnosticDataParams)(nil), // 71: agent.v1.StartActionRequest.MongoDBQueryGetDiagnosticDataParams + (*StartActionRequest_RestartSystemServiceParams)(nil), // 72: agent.v1.StartActionRequest.RestartSystemServiceParams + (*CheckConnectionResponse_Stats)(nil), // 73: agent.v1.CheckConnectionResponse.Stats + (*StartJobRequest_MySQLBackup)(nil), // 74: agent.v1.StartJobRequest.MySQLBackup + (*StartJobRequest_MySQLRestoreBackup)(nil), // 75: agent.v1.StartJobRequest.MySQLRestoreBackup + (*StartJobRequest_MongoDBBackup)(nil), // 76: agent.v1.StartJobRequest.MongoDBBackup + (*StartJobRequest_MongoDBRestoreBackup)(nil), // 77: agent.v1.StartJobRequest.MongoDBRestoreBackup + (*JobResult_Error)(nil), // 78: agent.v1.JobResult.Error + (*JobResult_MongoDBBackup)(nil), // 79: agent.v1.JobResult.MongoDBBackup + (*JobResult_MySQLBackup)(nil), // 80: agent.v1.JobResult.MySQLBackup + (*JobResult_MySQLRestoreBackup)(nil), // 81: agent.v1.JobResult.MySQLRestoreBackup + (*JobResult_MongoDBRestoreBackup)(nil), // 82: agent.v1.JobResult.MongoDBRestoreBackup + (*JobProgress_MySQLBackup)(nil), // 83: agent.v1.JobProgress.MySQLBackup + (*JobProgress_MySQLRestoreBackup)(nil), // 84: agent.v1.JobProgress.MySQLRestoreBackup + (*JobProgress_Logs)(nil), // 85: agent.v1.JobProgress.Logs + (*GetVersionsRequest_MySQLd)(nil), // 86: agent.v1.GetVersionsRequest.MySQLd + (*GetVersionsRequest_Xtrabackup)(nil), // 87: agent.v1.GetVersionsRequest.Xtrabackup + (*GetVersionsRequest_Xbcloud)(nil), // 88: agent.v1.GetVersionsRequest.Xbcloud + (*GetVersionsRequest_Qpress)(nil), // 89: agent.v1.GetVersionsRequest.Qpress + (*GetVersionsRequest_MongoDB)(nil), // 90: agent.v1.GetVersionsRequest.MongoDB + (*GetVersionsRequest_PBM)(nil), // 91: agent.v1.GetVersionsRequest.PBM + (*GetVersionsRequest_Software)(nil), // 92: agent.v1.GetVersionsRequest.Software + (*GetVersionsResponse_Version)(nil), // 93: agent.v1.GetVersionsResponse.Version + (*timestamppb.Timestamp)(nil), // 94: google.protobuf.Timestamp + (*MetricsBucket)(nil), // 95: agent.v1.MetricsBucket + (v1.AgentStatus)(0), // 96: inventory.v1.AgentStatus + (*durationpb.Duration)(nil), // 97: google.protobuf.Duration + (v1.ServiceType)(0), // 98: inventory.v1.ServiceType + (*status.Status)(nil), // 99: google.rpc.Status + (v1.AgentType)(0), // 100: inventory.v1.AgentType + (v11.DataModel)(0), // 101: backup.v1.DataModel + (*v11.PbmMetadata)(nil), // 102: backup.v1.PbmMetadata + (*v11.Metadata)(nil), // 103: backup.v1.Metadata } ) var file_agent_v1_agent_proto_depIdxs = []int32{ 44, // 0: agent.v1.TextFiles.files:type_name -> agent.v1.TextFiles.FilesEntry - 93, // 1: agent.v1.Pong.current_time:type_name -> google.protobuf.Timestamp - 94, // 2: agent.v1.QANCollectRequest.metrics_bucket:type_name -> agent.v1.MetricsBucket - 95, // 3: agent.v1.StateChangedRequest.status:type_name -> inventory.v1.AgentStatus + 94, // 1: agent.v1.Pong.current_time:type_name -> google.protobuf.Timestamp + 95, // 2: agent.v1.QANCollectRequest.metrics_bucket:type_name -> agent.v1.MetricsBucket + 96, // 3: agent.v1.StateChangedRequest.status:type_name -> inventory.v1.AgentStatus 46, // 4: agent.v1.SetStateRequest.agent_processes:type_name -> agent.v1.SetStateRequest.AgentProcessesEntry 48, // 5: agent.v1.SetStateRequest.builtin_agents:type_name -> agent.v1.SetStateRequest.BuiltinAgentsEntry - 93, // 6: agent.v1.QueryActionValue.timestamp:type_name -> google.protobuf.Timestamp + 94, // 6: agent.v1.QueryActionValue.timestamp:type_name -> google.protobuf.Timestamp 12, // 7: agent.v1.QueryActionValue.slice:type_name -> agent.v1.QueryActionSlice 13, // 8: agent.v1.QueryActionValue.map:type_name -> agent.v1.QueryActionMap 14, // 9: agent.v1.QueryActionValue.binary:type_name -> agent.v1.QueryActionBinary 11, // 10: agent.v1.QueryActionSlice.slice:type_name -> agent.v1.QueryActionValue - 50, // 11: agent.v1.QueryActionMap.map:type_name -> agent.v1.QueryActionMap.MapEntry + 51, // 11: agent.v1.QueryActionMap.map:type_name -> agent.v1.QueryActionMap.MapEntry 12, // 12: agent.v1.QueryActionResult.rows:type_name -> agent.v1.QueryActionSlice 13, // 13: agent.v1.QueryActionResult.docs:type_name -> agent.v1.QueryActionMap - 96, // 14: agent.v1.StartActionRequest.timeout:type_name -> google.protobuf.Duration - 51, // 15: agent.v1.StartActionRequest.mysql_explain_params:type_name -> agent.v1.StartActionRequest.MySQLExplainParams - 52, // 16: agent.v1.StartActionRequest.mysql_show_create_table_params:type_name -> agent.v1.StartActionRequest.MySQLShowCreateTableParams - 53, // 17: agent.v1.StartActionRequest.mysql_show_table_status_params:type_name -> agent.v1.StartActionRequest.MySQLShowTableStatusParams - 54, // 18: agent.v1.StartActionRequest.mysql_show_index_params:type_name -> agent.v1.StartActionRequest.MySQLShowIndexParams - 55, // 19: agent.v1.StartActionRequest.postgresql_show_create_table_params:type_name -> agent.v1.StartActionRequest.PostgreSQLShowCreateTableParams - 56, // 20: agent.v1.StartActionRequest.postgresql_show_index_params:type_name -> agent.v1.StartActionRequest.PostgreSQLShowIndexParams - 57, // 21: agent.v1.StartActionRequest.mongodb_explain_params:type_name -> agent.v1.StartActionRequest.MongoDBExplainParams - 58, // 22: agent.v1.StartActionRequest.pt_summary_params:type_name -> agent.v1.StartActionRequest.PTSummaryParams - 59, // 23: agent.v1.StartActionRequest.pt_pg_summary_params:type_name -> agent.v1.StartActionRequest.PTPgSummaryParams - 60, // 24: agent.v1.StartActionRequest.pt_mongodb_summary_params:type_name -> agent.v1.StartActionRequest.PTMongoDBSummaryParams - 61, // 25: agent.v1.StartActionRequest.pt_mysql_summary_params:type_name -> agent.v1.StartActionRequest.PTMySQLSummaryParams - 62, // 26: agent.v1.StartActionRequest.mysql_query_show_params:type_name -> agent.v1.StartActionRequest.MySQLQueryShowParams - 63, // 27: agent.v1.StartActionRequest.mysql_query_select_params:type_name -> agent.v1.StartActionRequest.MySQLQuerySelectParams - 64, // 28: agent.v1.StartActionRequest.postgresql_query_show_params:type_name -> agent.v1.StartActionRequest.PostgreSQLQueryShowParams - 65, // 29: agent.v1.StartActionRequest.postgresql_query_select_params:type_name -> agent.v1.StartActionRequest.PostgreSQLQuerySelectParams - 66, // 30: agent.v1.StartActionRequest.mongodb_query_getparameter_params:type_name -> agent.v1.StartActionRequest.MongoDBQueryGetParameterParams - 67, // 31: agent.v1.StartActionRequest.mongodb_query_buildinfo_params:type_name -> agent.v1.StartActionRequest.MongoDBQueryBuildInfoParams - 68, // 32: agent.v1.StartActionRequest.mongodb_query_getcmdlineopts_params:type_name -> agent.v1.StartActionRequest.MongoDBQueryGetCmdLineOptsParams - 69, // 33: agent.v1.StartActionRequest.mongodb_query_replsetgetstatus_params:type_name -> agent.v1.StartActionRequest.MongoDBQueryReplSetGetStatusParams - 70, // 34: agent.v1.StartActionRequest.mongodb_query_getdiagnosticdata_params:type_name -> agent.v1.StartActionRequest.MongoDBQueryGetDiagnosticDataParams - 71, // 35: agent.v1.StartActionRequest.restart_sys_service_params:type_name -> agent.v1.StartActionRequest.RestartSystemServiceParams + 97, // 14: agent.v1.StartActionRequest.timeout:type_name -> google.protobuf.Duration + 52, // 15: agent.v1.StartActionRequest.mysql_explain_params:type_name -> agent.v1.StartActionRequest.MySQLExplainParams + 53, // 16: agent.v1.StartActionRequest.mysql_show_create_table_params:type_name -> agent.v1.StartActionRequest.MySQLShowCreateTableParams + 54, // 17: agent.v1.StartActionRequest.mysql_show_table_status_params:type_name -> agent.v1.StartActionRequest.MySQLShowTableStatusParams + 55, // 18: agent.v1.StartActionRequest.mysql_show_index_params:type_name -> agent.v1.StartActionRequest.MySQLShowIndexParams + 56, // 19: agent.v1.StartActionRequest.postgresql_show_create_table_params:type_name -> agent.v1.StartActionRequest.PostgreSQLShowCreateTableParams + 57, // 20: agent.v1.StartActionRequest.postgresql_show_index_params:type_name -> agent.v1.StartActionRequest.PostgreSQLShowIndexParams + 58, // 21: agent.v1.StartActionRequest.mongodb_explain_params:type_name -> agent.v1.StartActionRequest.MongoDBExplainParams + 59, // 22: agent.v1.StartActionRequest.pt_summary_params:type_name -> agent.v1.StartActionRequest.PTSummaryParams + 60, // 23: agent.v1.StartActionRequest.pt_pg_summary_params:type_name -> agent.v1.StartActionRequest.PTPgSummaryParams + 61, // 24: agent.v1.StartActionRequest.pt_mongodb_summary_params:type_name -> agent.v1.StartActionRequest.PTMongoDBSummaryParams + 62, // 25: agent.v1.StartActionRequest.pt_mysql_summary_params:type_name -> agent.v1.StartActionRequest.PTMySQLSummaryParams + 63, // 26: agent.v1.StartActionRequest.mysql_query_show_params:type_name -> agent.v1.StartActionRequest.MySQLQueryShowParams + 64, // 27: agent.v1.StartActionRequest.mysql_query_select_params:type_name -> agent.v1.StartActionRequest.MySQLQuerySelectParams + 65, // 28: agent.v1.StartActionRequest.postgresql_query_show_params:type_name -> agent.v1.StartActionRequest.PostgreSQLQueryShowParams + 66, // 29: agent.v1.StartActionRequest.postgresql_query_select_params:type_name -> agent.v1.StartActionRequest.PostgreSQLQuerySelectParams + 67, // 30: agent.v1.StartActionRequest.mongodb_query_getparameter_params:type_name -> agent.v1.StartActionRequest.MongoDBQueryGetParameterParams + 68, // 31: agent.v1.StartActionRequest.mongodb_query_buildinfo_params:type_name -> agent.v1.StartActionRequest.MongoDBQueryBuildInfoParams + 69, // 32: agent.v1.StartActionRequest.mongodb_query_getcmdlineopts_params:type_name -> agent.v1.StartActionRequest.MongoDBQueryGetCmdLineOptsParams + 70, // 33: agent.v1.StartActionRequest.mongodb_query_replsetgetstatus_params:type_name -> agent.v1.StartActionRequest.MongoDBQueryReplSetGetStatusParams + 71, // 34: agent.v1.StartActionRequest.mongodb_query_getdiagnosticdata_params:type_name -> agent.v1.StartActionRequest.MongoDBQueryGetDiagnosticDataParams + 72, // 35: agent.v1.StartActionRequest.restart_sys_service_params:type_name -> agent.v1.StartActionRequest.RestartSystemServiceParams 2, // 36: agent.v1.PBMSwitchPITRRequest.text_files:type_name -> agent.v1.TextFiles - 97, // 37: agent.v1.CheckConnectionRequest.type:type_name -> inventory.v1.ServiceType - 96, // 38: agent.v1.CheckConnectionRequest.timeout:type_name -> google.protobuf.Duration + 98, // 37: agent.v1.CheckConnectionRequest.type:type_name -> inventory.v1.ServiceType + 97, // 38: agent.v1.CheckConnectionRequest.timeout:type_name -> google.protobuf.Duration 2, // 39: agent.v1.CheckConnectionRequest.text_files:type_name -> agent.v1.TextFiles - 97, // 40: agent.v1.ServiceInfoRequest.type:type_name -> inventory.v1.ServiceType - 96, // 41: agent.v1.ServiceInfoRequest.timeout:type_name -> google.protobuf.Duration + 98, // 40: agent.v1.ServiceInfoRequest.type:type_name -> inventory.v1.ServiceType + 97, // 41: agent.v1.ServiceInfoRequest.timeout:type_name -> google.protobuf.Duration 2, // 42: agent.v1.ServiceInfoRequest.text_files:type_name -> agent.v1.TextFiles - 96, // 43: agent.v1.StartJobRequest.timeout:type_name -> google.protobuf.Duration - 73, // 44: agent.v1.StartJobRequest.mysql_backup:type_name -> agent.v1.StartJobRequest.MySQLBackup - 74, // 45: agent.v1.StartJobRequest.mysql_restore_backup:type_name -> agent.v1.StartJobRequest.MySQLRestoreBackup - 75, // 46: agent.v1.StartJobRequest.mongodb_backup:type_name -> agent.v1.StartJobRequest.MongoDBBackup - 76, // 47: agent.v1.StartJobRequest.mongodb_restore_backup:type_name -> agent.v1.StartJobRequest.MongoDBRestoreBackup - 93, // 48: agent.v1.JobResult.timestamp:type_name -> google.protobuf.Timestamp - 77, // 49: agent.v1.JobResult.error:type_name -> agent.v1.JobResult.Error - 79, // 50: agent.v1.JobResult.mysql_backup:type_name -> agent.v1.JobResult.MySQLBackup - 80, // 51: agent.v1.JobResult.mysql_restore_backup:type_name -> agent.v1.JobResult.MySQLRestoreBackup - 78, // 52: agent.v1.JobResult.mongodb_backup:type_name -> agent.v1.JobResult.MongoDBBackup - 81, // 53: agent.v1.JobResult.mongodb_restore_backup:type_name -> agent.v1.JobResult.MongoDBRestoreBackup - 93, // 54: agent.v1.JobProgress.timestamp:type_name -> google.protobuf.Timestamp - 82, // 55: agent.v1.JobProgress.mysql_backup:type_name -> agent.v1.JobProgress.MySQLBackup - 83, // 56: agent.v1.JobProgress.mysql_restore_backup:type_name -> agent.v1.JobProgress.MySQLRestoreBackup - 84, // 57: agent.v1.JobProgress.logs:type_name -> agent.v1.JobProgress.Logs - 91, // 58: agent.v1.GetVersionsRequest.softwares:type_name -> agent.v1.GetVersionsRequest.Software - 92, // 59: agent.v1.GetVersionsResponse.versions:type_name -> agent.v1.GetVersionsResponse.Version - 98, // 60: agent.v1.AgentMessage.status:type_name -> google.rpc.Status + 97, // 43: agent.v1.StartJobRequest.timeout:type_name -> google.protobuf.Duration + 74, // 44: agent.v1.StartJobRequest.mysql_backup:type_name -> agent.v1.StartJobRequest.MySQLBackup + 75, // 45: agent.v1.StartJobRequest.mysql_restore_backup:type_name -> agent.v1.StartJobRequest.MySQLRestoreBackup + 76, // 46: agent.v1.StartJobRequest.mongodb_backup:type_name -> agent.v1.StartJobRequest.MongoDBBackup + 77, // 47: agent.v1.StartJobRequest.mongodb_restore_backup:type_name -> agent.v1.StartJobRequest.MongoDBRestoreBackup + 94, // 48: agent.v1.JobResult.timestamp:type_name -> google.protobuf.Timestamp + 78, // 49: agent.v1.JobResult.error:type_name -> agent.v1.JobResult.Error + 80, // 50: agent.v1.JobResult.mysql_backup:type_name -> agent.v1.JobResult.MySQLBackup + 81, // 51: agent.v1.JobResult.mysql_restore_backup:type_name -> agent.v1.JobResult.MySQLRestoreBackup + 79, // 52: agent.v1.JobResult.mongodb_backup:type_name -> agent.v1.JobResult.MongoDBBackup + 82, // 53: agent.v1.JobResult.mongodb_restore_backup:type_name -> agent.v1.JobResult.MongoDBRestoreBackup + 94, // 54: agent.v1.JobProgress.timestamp:type_name -> google.protobuf.Timestamp + 83, // 55: agent.v1.JobProgress.mysql_backup:type_name -> agent.v1.JobProgress.MySQLBackup + 84, // 56: agent.v1.JobProgress.mysql_restore_backup:type_name -> agent.v1.JobProgress.MySQLRestoreBackup + 85, // 57: agent.v1.JobProgress.logs:type_name -> agent.v1.JobProgress.Logs + 92, // 58: agent.v1.GetVersionsRequest.softwares:type_name -> agent.v1.GetVersionsRequest.Software + 93, // 59: agent.v1.GetVersionsResponse.versions:type_name -> agent.v1.GetVersionsResponse.Version + 99, // 60: agent.v1.AgentMessage.status:type_name -> google.rpc.Status 3, // 61: agent.v1.AgentMessage.ping:type_name -> agent.v1.Ping 7, // 62: agent.v1.AgentMessage.state_changed:type_name -> agent.v1.StateChangedRequest 5, // 63: agent.v1.AgentMessage.qan_collect:type_name -> agent.v1.QANCollectRequest @@ -7241,7 +7257,7 @@ var file_agent_v1_agent_proto_depIdxs = []int32{ 23, // 76: agent.v1.AgentMessage.pbm_switch_pitr:type_name -> agent.v1.PBMSwitchPITRResponse 25, // 77: agent.v1.AgentMessage.agent_logs:type_name -> agent.v1.AgentLogsResponse 29, // 78: agent.v1.AgentMessage.service_info:type_name -> agent.v1.ServiceInfoResponse - 98, // 79: agent.v1.ServerMessage.status:type_name -> google.rpc.Status + 99, // 79: agent.v1.ServerMessage.status:type_name -> google.rpc.Status 4, // 80: agent.v1.ServerMessage.pong:type_name -> agent.v1.Pong 8, // 81: agent.v1.ServerMessage.state_changed:type_name -> agent.v1.StateChangedResponse 6, // 82: agent.v1.ServerMessage.qan_collect:type_name -> agent.v1.QANCollectResponse @@ -7258,57 +7274,58 @@ var file_agent_v1_agent_proto_depIdxs = []int32{ 22, // 93: agent.v1.ServerMessage.pbm_switch_pitr:type_name -> agent.v1.PBMSwitchPITRRequest 24, // 94: agent.v1.ServerMessage.agent_logs:type_name -> agent.v1.AgentLogsRequest 28, // 95: agent.v1.ServerMessage.service_info:type_name -> agent.v1.ServiceInfoRequest - 99, // 96: agent.v1.SetStateRequest.AgentProcess.type:type_name -> inventory.v1.AgentType + 100, // 96: agent.v1.SetStateRequest.AgentProcess.type:type_name -> inventory.v1.AgentType 49, // 97: agent.v1.SetStateRequest.AgentProcess.text_files:type_name -> agent.v1.SetStateRequest.AgentProcess.TextFilesEntry 45, // 98: agent.v1.SetStateRequest.AgentProcessesEntry.value:type_name -> agent.v1.SetStateRequest.AgentProcess - 99, // 99: agent.v1.SetStateRequest.BuiltinAgent.type:type_name -> inventory.v1.AgentType + 100, // 99: agent.v1.SetStateRequest.BuiltinAgent.type:type_name -> inventory.v1.AgentType 2, // 100: agent.v1.SetStateRequest.BuiltinAgent.text_files:type_name -> agent.v1.TextFiles - 47, // 101: agent.v1.SetStateRequest.BuiltinAgentsEntry.value:type_name -> agent.v1.SetStateRequest.BuiltinAgent - 11, // 102: agent.v1.QueryActionMap.MapEntry.value:type_name -> agent.v1.QueryActionValue - 0, // 103: agent.v1.StartActionRequest.MySQLExplainParams.output_format:type_name -> agent.v1.MysqlExplainOutputFormat - 2, // 104: agent.v1.StartActionRequest.MySQLExplainParams.tls_files:type_name -> agent.v1.TextFiles - 2, // 105: agent.v1.StartActionRequest.MySQLShowCreateTableParams.tls_files:type_name -> agent.v1.TextFiles - 2, // 106: agent.v1.StartActionRequest.MySQLShowTableStatusParams.tls_files:type_name -> agent.v1.TextFiles - 2, // 107: agent.v1.StartActionRequest.MySQLShowIndexParams.tls_files:type_name -> agent.v1.TextFiles - 2, // 108: agent.v1.StartActionRequest.PostgreSQLShowCreateTableParams.tls_files:type_name -> agent.v1.TextFiles - 2, // 109: agent.v1.StartActionRequest.PostgreSQLShowIndexParams.tls_files:type_name -> agent.v1.TextFiles - 2, // 110: agent.v1.StartActionRequest.MongoDBExplainParams.text_files:type_name -> agent.v1.TextFiles - 2, // 111: agent.v1.StartActionRequest.MySQLQueryShowParams.tls_files:type_name -> agent.v1.TextFiles - 2, // 112: agent.v1.StartActionRequest.MySQLQuerySelectParams.tls_files:type_name -> agent.v1.TextFiles - 2, // 113: agent.v1.StartActionRequest.PostgreSQLQueryShowParams.tls_files:type_name -> agent.v1.TextFiles - 2, // 114: agent.v1.StartActionRequest.PostgreSQLQuerySelectParams.tls_files:type_name -> agent.v1.TextFiles - 2, // 115: agent.v1.StartActionRequest.MongoDBQueryGetParameterParams.text_files:type_name -> agent.v1.TextFiles - 2, // 116: agent.v1.StartActionRequest.MongoDBQueryBuildInfoParams.text_files:type_name -> agent.v1.TextFiles - 2, // 117: agent.v1.StartActionRequest.MongoDBQueryGetCmdLineOptsParams.text_files:type_name -> agent.v1.TextFiles - 2, // 118: agent.v1.StartActionRequest.MongoDBQueryReplSetGetStatusParams.text_files:type_name -> agent.v1.TextFiles - 2, // 119: agent.v1.StartActionRequest.MongoDBQueryGetDiagnosticDataParams.text_files:type_name -> agent.v1.TextFiles - 1, // 120: agent.v1.StartActionRequest.RestartSystemServiceParams.system_service:type_name -> agent.v1.StartActionRequest.RestartSystemServiceParams.SystemService - 32, // 121: agent.v1.StartJobRequest.MySQLBackup.s3_config:type_name -> agent.v1.S3LocationConfig - 32, // 122: agent.v1.StartJobRequest.MySQLRestoreBackup.s3_config:type_name -> agent.v1.S3LocationConfig - 2, // 123: agent.v1.StartJobRequest.MongoDBBackup.text_files:type_name -> agent.v1.TextFiles - 100, // 124: agent.v1.StartJobRequest.MongoDBBackup.data_model:type_name -> backup.v1.DataModel - 32, // 125: agent.v1.StartJobRequest.MongoDBBackup.s3_config:type_name -> agent.v1.S3LocationConfig - 33, // 126: agent.v1.StartJobRequest.MongoDBBackup.filesystem_config:type_name -> agent.v1.FilesystemLocationConfig - 2, // 127: agent.v1.StartJobRequest.MongoDBRestoreBackup.text_files:type_name -> agent.v1.TextFiles - 101, // 128: agent.v1.StartJobRequest.MongoDBRestoreBackup.pbm_metadata:type_name -> backup.v1.PbmMetadata - 93, // 129: agent.v1.StartJobRequest.MongoDBRestoreBackup.pitr_timestamp:type_name -> google.protobuf.Timestamp - 32, // 130: agent.v1.StartJobRequest.MongoDBRestoreBackup.s3_config:type_name -> agent.v1.S3LocationConfig - 33, // 131: agent.v1.StartJobRequest.MongoDBRestoreBackup.filesystem_config:type_name -> agent.v1.FilesystemLocationConfig - 102, // 132: agent.v1.JobResult.MongoDBBackup.metadata:type_name -> backup.v1.Metadata - 102, // 133: agent.v1.JobResult.MySQLBackup.metadata:type_name -> backup.v1.Metadata - 85, // 134: agent.v1.GetVersionsRequest.Software.mysqld:type_name -> agent.v1.GetVersionsRequest.MySQLd - 86, // 135: agent.v1.GetVersionsRequest.Software.xtrabackup:type_name -> agent.v1.GetVersionsRequest.Xtrabackup - 87, // 136: agent.v1.GetVersionsRequest.Software.xbcloud:type_name -> agent.v1.GetVersionsRequest.Xbcloud - 88, // 137: agent.v1.GetVersionsRequest.Software.qpress:type_name -> agent.v1.GetVersionsRequest.Qpress - 89, // 138: agent.v1.GetVersionsRequest.Software.mongod:type_name -> agent.v1.GetVersionsRequest.MongoDB - 90, // 139: agent.v1.GetVersionsRequest.Software.pbm:type_name -> agent.v1.GetVersionsRequest.PBM - 42, // 140: agent.v1.AgentService.Connect:input_type -> agent.v1.AgentMessage - 43, // 141: agent.v1.AgentService.Connect:output_type -> agent.v1.ServerMessage - 141, // [141:142] is the sub-list for method output_type - 140, // [140:141] is the sub-list for method input_type - 140, // [140:140] is the sub-list for extension type_name - 140, // [140:140] is the sub-list for extension extendee - 0, // [0:140] is the sub-list for field type_name + 50, // 101: agent.v1.SetStateRequest.BuiltinAgent.env:type_name -> agent.v1.SetStateRequest.BuiltinAgent.EnvEntry + 47, // 102: agent.v1.SetStateRequest.BuiltinAgentsEntry.value:type_name -> agent.v1.SetStateRequest.BuiltinAgent + 11, // 103: agent.v1.QueryActionMap.MapEntry.value:type_name -> agent.v1.QueryActionValue + 0, // 104: agent.v1.StartActionRequest.MySQLExplainParams.output_format:type_name -> agent.v1.MysqlExplainOutputFormat + 2, // 105: agent.v1.StartActionRequest.MySQLExplainParams.tls_files:type_name -> agent.v1.TextFiles + 2, // 106: agent.v1.StartActionRequest.MySQLShowCreateTableParams.tls_files:type_name -> agent.v1.TextFiles + 2, // 107: agent.v1.StartActionRequest.MySQLShowTableStatusParams.tls_files:type_name -> agent.v1.TextFiles + 2, // 108: agent.v1.StartActionRequest.MySQLShowIndexParams.tls_files:type_name -> agent.v1.TextFiles + 2, // 109: agent.v1.StartActionRequest.PostgreSQLShowCreateTableParams.tls_files:type_name -> agent.v1.TextFiles + 2, // 110: agent.v1.StartActionRequest.PostgreSQLShowIndexParams.tls_files:type_name -> agent.v1.TextFiles + 2, // 111: agent.v1.StartActionRequest.MongoDBExplainParams.text_files:type_name -> agent.v1.TextFiles + 2, // 112: agent.v1.StartActionRequest.MySQLQueryShowParams.tls_files:type_name -> agent.v1.TextFiles + 2, // 113: agent.v1.StartActionRequest.MySQLQuerySelectParams.tls_files:type_name -> agent.v1.TextFiles + 2, // 114: agent.v1.StartActionRequest.PostgreSQLQueryShowParams.tls_files:type_name -> agent.v1.TextFiles + 2, // 115: agent.v1.StartActionRequest.PostgreSQLQuerySelectParams.tls_files:type_name -> agent.v1.TextFiles + 2, // 116: agent.v1.StartActionRequest.MongoDBQueryGetParameterParams.text_files:type_name -> agent.v1.TextFiles + 2, // 117: agent.v1.StartActionRequest.MongoDBQueryBuildInfoParams.text_files:type_name -> agent.v1.TextFiles + 2, // 118: agent.v1.StartActionRequest.MongoDBQueryGetCmdLineOptsParams.text_files:type_name -> agent.v1.TextFiles + 2, // 119: agent.v1.StartActionRequest.MongoDBQueryReplSetGetStatusParams.text_files:type_name -> agent.v1.TextFiles + 2, // 120: agent.v1.StartActionRequest.MongoDBQueryGetDiagnosticDataParams.text_files:type_name -> agent.v1.TextFiles + 1, // 121: agent.v1.StartActionRequest.RestartSystemServiceParams.system_service:type_name -> agent.v1.StartActionRequest.RestartSystemServiceParams.SystemService + 32, // 122: agent.v1.StartJobRequest.MySQLBackup.s3_config:type_name -> agent.v1.S3LocationConfig + 32, // 123: agent.v1.StartJobRequest.MySQLRestoreBackup.s3_config:type_name -> agent.v1.S3LocationConfig + 2, // 124: agent.v1.StartJobRequest.MongoDBBackup.text_files:type_name -> agent.v1.TextFiles + 101, // 125: agent.v1.StartJobRequest.MongoDBBackup.data_model:type_name -> backup.v1.DataModel + 32, // 126: agent.v1.StartJobRequest.MongoDBBackup.s3_config:type_name -> agent.v1.S3LocationConfig + 33, // 127: agent.v1.StartJobRequest.MongoDBBackup.filesystem_config:type_name -> agent.v1.FilesystemLocationConfig + 2, // 128: agent.v1.StartJobRequest.MongoDBRestoreBackup.text_files:type_name -> agent.v1.TextFiles + 102, // 129: agent.v1.StartJobRequest.MongoDBRestoreBackup.pbm_metadata:type_name -> backup.v1.PbmMetadata + 94, // 130: agent.v1.StartJobRequest.MongoDBRestoreBackup.pitr_timestamp:type_name -> google.protobuf.Timestamp + 32, // 131: agent.v1.StartJobRequest.MongoDBRestoreBackup.s3_config:type_name -> agent.v1.S3LocationConfig + 33, // 132: agent.v1.StartJobRequest.MongoDBRestoreBackup.filesystem_config:type_name -> agent.v1.FilesystemLocationConfig + 103, // 133: agent.v1.JobResult.MongoDBBackup.metadata:type_name -> backup.v1.Metadata + 103, // 134: agent.v1.JobResult.MySQLBackup.metadata:type_name -> backup.v1.Metadata + 86, // 135: agent.v1.GetVersionsRequest.Software.mysqld:type_name -> agent.v1.GetVersionsRequest.MySQLd + 87, // 136: agent.v1.GetVersionsRequest.Software.xtrabackup:type_name -> agent.v1.GetVersionsRequest.Xtrabackup + 88, // 137: agent.v1.GetVersionsRequest.Software.xbcloud:type_name -> agent.v1.GetVersionsRequest.Xbcloud + 89, // 138: agent.v1.GetVersionsRequest.Software.qpress:type_name -> agent.v1.GetVersionsRequest.Qpress + 90, // 139: agent.v1.GetVersionsRequest.Software.mongod:type_name -> agent.v1.GetVersionsRequest.MongoDB + 91, // 140: agent.v1.GetVersionsRequest.Software.pbm:type_name -> agent.v1.GetVersionsRequest.PBM + 42, // 141: agent.v1.AgentService.Connect:input_type -> agent.v1.AgentMessage + 43, // 142: agent.v1.AgentService.Connect:output_type -> agent.v1.ServerMessage + 142, // [142:143] is the sub-list for method output_type + 141, // [141:142] is the sub-list for method input_type + 141, // [141:141] is the sub-list for extension type_name + 141, // [141:141] is the sub-list for extension extendee + 0, // [0:141] is the sub-list for field type_name } func init() { file_agent_v1_agent_proto_init() } @@ -7409,21 +7426,21 @@ func file_agent_v1_agent_proto_init() { (*ServerMessage_AgentLogs)(nil), (*ServerMessage_ServiceInfo)(nil), } - file_agent_v1_agent_proto_msgTypes[71].OneofWrappers = []any{ + file_agent_v1_agent_proto_msgTypes[72].OneofWrappers = []any{ (*StartJobRequest_MySQLBackup_S3Config)(nil), } - file_agent_v1_agent_proto_msgTypes[72].OneofWrappers = []any{ + file_agent_v1_agent_proto_msgTypes[73].OneofWrappers = []any{ (*StartJobRequest_MySQLRestoreBackup_S3Config)(nil), } - file_agent_v1_agent_proto_msgTypes[73].OneofWrappers = []any{ + file_agent_v1_agent_proto_msgTypes[74].OneofWrappers = []any{ (*StartJobRequest_MongoDBBackup_S3Config)(nil), (*StartJobRequest_MongoDBBackup_FilesystemConfig)(nil), } - file_agent_v1_agent_proto_msgTypes[74].OneofWrappers = []any{ + file_agent_v1_agent_proto_msgTypes[75].OneofWrappers = []any{ (*StartJobRequest_MongoDBRestoreBackup_S3Config)(nil), (*StartJobRequest_MongoDBRestoreBackup_FilesystemConfig)(nil), } - file_agent_v1_agent_proto_msgTypes[89].OneofWrappers = []any{ + file_agent_v1_agent_proto_msgTypes[90].OneofWrappers = []any{ (*GetVersionsRequest_Software_Mysqld)(nil), (*GetVersionsRequest_Software_Xtrabackup)(nil), (*GetVersionsRequest_Software_Xbcloud)(nil), @@ -7437,7 +7454,7 @@ func file_agent_v1_agent_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_agent_v1_agent_proto_rawDesc), len(file_agent_v1_agent_proto_rawDesc)), NumEnums: 2, - NumMessages: 91, + NumMessages: 92, NumExtensions: 0, NumServices: 1, }, diff --git a/api/agent/v1/agent.pb.validate.go b/api/agent/v1/agent.pb.validate.go index ed9da319c44..ea95d2a6439 100644 --- a/api/agent/v1/agent.pb.validate.go +++ b/api/agent/v1/agent.pb.validate.go @@ -8268,6 +8268,8 @@ func (m *SetStateRequest_BuiltinAgent) validate(all bool) error { // no validation rules for TlsSkipVerify + // no validation rules for Env + if len(errors) > 0 { return SetStateRequest_BuiltinAgentMultiError(errors) } diff --git a/api/agent/v1/agent.proto b/api/agent/v1/agent.proto index de206a8df16..ceaea912505 100644 --- a/api/agent/v1/agent.proto +++ b/api/agent/v1/agent.proto @@ -80,6 +80,8 @@ message SetStateRequest { bool tls = 8; // TLS certificate wont be verified. bool tls_skip_verify = 9; + // environment variables to be passed to the built-in agent. + map env = 10; } map builtin_agents = 2; } diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 24b803d5959..7d1c4b2e610 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -5609,8 +5609,10 @@ type AddMongoDBExporterParams struct { LogLevel LogLevel `protobuf:"varint,19,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` // Optionally expose the exporter process on all public interfaces ExposeExporter bool `protobuf:"varint,20,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Environment variables to set for the exporter process. + AgentEnvironmentVariables map[string]string `protobuf:"bytes,21,rep,name=agent_environment_variables,json=agentEnvironmentVariables,proto3" json:"agent_environment_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AddMongoDBExporterParams) Reset() { @@ -5783,6 +5785,13 @@ func (x *AddMongoDBExporterParams) GetExposeExporter() bool { return false } +func (x *AddMongoDBExporterParams) GetAgentEnvironmentVariables() map[string]string { + if x != nil { + return x.AgentEnvironmentVariables + } + return nil +} + type ChangeMongoDBExporterParams struct { state protoimpl.MessageState `protogen:"open.v1"` // Enable this Agent. Agents are enabled by default when they get added. @@ -6896,10 +6905,12 @@ type AddQANMongoDBProfilerAgentParams struct { AuthenticationMechanism string `protobuf:"bytes,13,opt,name=authentication_mechanism,json=authenticationMechanism,proto3" json:"authentication_mechanism,omitempty"` // Authentication database. AuthenticationDatabase string `protobuf:"bytes,14,opt,name=authentication_database,json=authenticationDatabase,proto3" json:"authentication_database,omitempty"` - // Log level for exporter. - LogLevel LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Log level for agent. + LogLevel LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + // Environment variables to set for the agent process. + AgentEnvironmentVariables map[string]string `protobuf:"bytes,16,rep,name=agent_environment_variables,json=agentEnvironmentVariables,proto3" json:"agent_environment_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AddQANMongoDBProfilerAgentParams) Reset() { @@ -7037,6 +7048,13 @@ func (x *AddQANMongoDBProfilerAgentParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } +func (x *AddQANMongoDBProfilerAgentParams) GetAgentEnvironmentVariables() map[string]string { + if x != nil { + return x.AgentEnvironmentVariables + } + return nil +} + type ChangeQANMongoDBProfilerAgentParams struct { state protoimpl.MessageState `protogen:"open.v1"` // Enable this Agent. Agents are enabled by default when they get added. @@ -7141,10 +7159,12 @@ type AddQANMongoDBMongologAgentParams struct { AuthenticationMechanism string `protobuf:"bytes,13,opt,name=authentication_mechanism,json=authenticationMechanism,proto3" json:"authentication_mechanism,omitempty"` // Authentication database. AuthenticationDatabase string `protobuf:"bytes,14,opt,name=authentication_database,json=authenticationDatabase,proto3" json:"authentication_database,omitempty"` - // Log level for exporter. - LogLevel LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Log level for agent. + LogLevel LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + // Environment variables to set for the agent process. + AgentEnvironmentVariables map[string]string `protobuf:"bytes,16,rep,name=agent_environment_variables,json=agentEnvironmentVariables,proto3" json:"agent_environment_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AddQANMongoDBMongologAgentParams) Reset() { @@ -7282,6 +7302,13 @@ func (x *AddQANMongoDBMongologAgentParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } +func (x *AddQANMongoDBMongologAgentParams) GetAgentEnvironmentVariables() map[string]string { + if x != nil { + return x.AgentEnvironmentVariables + } + return nil +} + type ChangeQANMongoDBMongologAgentParams struct { state protoimpl.MessageState `protogen:"open.v1"` // Enable this Agent. Agents are enabled by default when they get added. @@ -9413,7 +9440,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x13metrics_resolutions\x18\x04 \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutionsB\t\n" + "\a_enableB\x10\n" + "\x0e_custom_labelsB\x16\n" + - "\x14_enable_push_metrics\"\xe9\a\n" + + "\x14_enable_push_metrics\"\xbf\t\n" + "\x18AddMongoDBExporterParams\x12)\n" + "\fpmm_agent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" + "pmmAgentId\x12&\n" + @@ -9437,9 +9464,13 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x11stats_collections\x18\x11 \x03(\tR\x10statsCollections\x12+\n" + "\x11collections_limit\x18\x12 \x01(\x05R\x10collectionsLimit\x123\n" + "\tlog_level\x18\x13 \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12'\n" + - "\x0fexpose_exporter\x18\x14 \x01(\bR\x0eexposeExporter\x1a?\n" + + "\x0fexpose_exporter\x18\x14 \x01(\bR\x0eexposeExporter\x12\x85\x01\n" + + "\x1bagent_environment_variables\x18\x15 \x03(\v2E.inventory.v1.AddMongoDBExporterParams.AgentEnvironmentVariablesEntryR\x19agentEnvironmentVariables\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aL\n" + + "\x1eAgentEnvironmentVariablesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xae\x02\n" + "\x1bChangeMongoDBExporterParams\x12\x1b\n" + "\x06enable\x18\x01 \x01(\bH\x00R\x06enable\x88\x01\x01\x12;\n" + @@ -9578,7 +9609,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x13metrics_resolutions\x18\x04 \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutionsB\t\n" + "\a_enableB\x10\n" + "\x0e_custom_labelsB\x16\n" + - "\x14_enable_push_metrics\"\xa7\x06\n" + + "\x14_enable_push_metrics\"\x85\b\n" + " AddQANMongoDBProfilerAgentParams\x12)\n" + "\fpmm_agent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" + "pmmAgentId\x12&\n" + @@ -9597,9 +9628,13 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x15skip_connection_check\x18\f \x01(\bR\x13skipConnectionCheck\x129\n" + "\x18authentication_mechanism\x18\r \x01(\tR\x17authenticationMechanism\x127\n" + "\x17authentication_database\x18\x0e \x01(\tR\x16authenticationDatabase\x123\n" + - "\tlog_level\x18\x0f \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x1a?\n" + + "\tlog_level\x18\x0f \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12\x8d\x01\n" + + "\x1bagent_environment_variables\x18\x10 \x03(\v2M.inventory.v1.AddQANMongoDBProfilerAgentParams.AgentEnvironmentVariablesEntryR\x19agentEnvironmentVariables\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aL\n" + + "\x1eAgentEnvironmentVariablesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xb6\x02\n" + "#ChangeQANMongoDBProfilerAgentParams\x12\x1b\n" + "\x06enable\x18\x01 \x01(\bH\x00R\x06enable\x88\x01\x01\x12;\n" + @@ -9608,7 +9643,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x13metrics_resolutions\x18\x04 \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutionsB\t\n" + "\a_enableB\x10\n" + "\x0e_custom_labelsB\x16\n" + - "\x14_enable_push_metrics\"\xa7\x06\n" + + "\x14_enable_push_metrics\"\x85\b\n" + " AddQANMongoDBMongologAgentParams\x12)\n" + "\fpmm_agent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" + "pmmAgentId\x12&\n" + @@ -9627,9 +9662,13 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x15skip_connection_check\x18\f \x01(\bR\x13skipConnectionCheck\x129\n" + "\x18authentication_mechanism\x18\r \x01(\tR\x17authenticationMechanism\x127\n" + "\x17authentication_database\x18\x0e \x01(\tR\x16authenticationDatabase\x123\n" + - "\tlog_level\x18\x0f \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x1a?\n" + + "\tlog_level\x18\x0f \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12\x8d\x01\n" + + "\x1bagent_environment_variables\x18\x10 \x03(\v2M.inventory.v1.AddQANMongoDBMongologAgentParams.AgentEnvironmentVariablesEntryR\x19agentEnvironmentVariables\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aL\n" + + "\x1eAgentEnvironmentVariablesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xb6\x02\n" + "#ChangeQANMongoDBMongologAgentParams\x12\x1b\n" + "\x06enable\x18\x01 \x01(\bH\x00R\x06enable\x88\x01\x01\x12;\n" + @@ -9855,7 +9894,7 @@ func file_inventory_v1_agents_proto_rawDescGZIP() []byte { var ( file_inventory_v1_agents_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 101) + file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 104) file_inventory_v1_agents_proto_goTypes = []any{ (AgentType)(0), // 0: inventory.v1.AgentType (*PMMAgent)(nil), // 1: inventory.v1.PMMAgent @@ -9945,87 +9984,90 @@ var ( nil, // 85: inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry nil, // 86: inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry nil, // 87: inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - nil, // 88: inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - nil, // 89: inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - nil, // 90: inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - nil, // 91: inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry - nil, // 92: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - nil, // 93: inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry - nil, // 94: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - nil, // 95: inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry - nil, // 96: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - nil, // 97: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - nil, // 98: inventory.v1.AddRDSExporterParams.CustomLabelsEntry - nil, // 99: inventory.v1.AddExternalExporterParams.CustomLabelsEntry - nil, // 100: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - nil, // 101: inventory.v1.AddValkeyExporterParams.CustomLabelsEntry - (AgentStatus)(0), // 102: inventory.v1.AgentStatus - (LogLevel)(0), // 103: inventory.v1.LogLevel - (*common.MetricsResolutions)(nil), // 104: common.MetricsResolutions - (*common.StringMap)(nil), // 105: common.StringMap + nil, // 88: inventory.v1.AddMongoDBExporterParams.AgentEnvironmentVariablesEntry + nil, // 89: inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + nil, // 90: inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + nil, // 91: inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + nil, // 92: inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry + nil, // 93: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + nil, // 94: inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry + nil, // 95: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + nil, // 96: inventory.v1.AddQANMongoDBProfilerAgentParams.AgentEnvironmentVariablesEntry + nil, // 97: inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry + nil, // 98: inventory.v1.AddQANMongoDBMongologAgentParams.AgentEnvironmentVariablesEntry + nil, // 99: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + nil, // 100: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + nil, // 101: inventory.v1.AddRDSExporterParams.CustomLabelsEntry + nil, // 102: inventory.v1.AddExternalExporterParams.CustomLabelsEntry + nil, // 103: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + nil, // 104: inventory.v1.AddValkeyExporterParams.CustomLabelsEntry + (AgentStatus)(0), // 105: inventory.v1.AgentStatus + (LogLevel)(0), // 106: inventory.v1.LogLevel + (*common.MetricsResolutions)(nil), // 107: common.MetricsResolutions + (*common.StringMap)(nil), // 108: common.StringMap } ) var file_inventory_v1_agents_proto_depIdxs = []int32{ 64, // 0: inventory.v1.PMMAgent.custom_labels:type_name -> inventory.v1.PMMAgent.CustomLabelsEntry - 102, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus - 102, // 2: inventory.v1.NomadAgent.status:type_name -> inventory.v1.AgentStatus + 105, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus + 105, // 2: inventory.v1.NomadAgent.status:type_name -> inventory.v1.AgentStatus 65, // 3: inventory.v1.NodeExporter.custom_labels:type_name -> inventory.v1.NodeExporter.CustomLabelsEntry - 102, // 4: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus - 103, // 5: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel - 104, // 6: inventory.v1.NodeExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 4: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus + 106, // 5: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel + 107, // 6: inventory.v1.NodeExporter.metrics_resolutions:type_name -> common.MetricsResolutions 66, // 7: inventory.v1.MySQLdExporter.custom_labels:type_name -> inventory.v1.MySQLdExporter.CustomLabelsEntry - 102, // 8: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus - 103, // 9: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel - 104, // 10: inventory.v1.MySQLdExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 8: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus + 106, // 9: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel + 107, // 10: inventory.v1.MySQLdExporter.metrics_resolutions:type_name -> common.MetricsResolutions 67, // 11: inventory.v1.MySQLdExporter.extra_dsn_params:type_name -> inventory.v1.MySQLdExporter.ExtraDsnParamsEntry 68, // 12: inventory.v1.MongoDBExporter.custom_labels:type_name -> inventory.v1.MongoDBExporter.CustomLabelsEntry - 102, // 13: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus - 103, // 14: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel - 104, // 15: inventory.v1.MongoDBExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 13: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus + 106, // 14: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel + 107, // 15: inventory.v1.MongoDBExporter.metrics_resolutions:type_name -> common.MetricsResolutions 69, // 16: inventory.v1.PostgresExporter.custom_labels:type_name -> inventory.v1.PostgresExporter.CustomLabelsEntry - 102, // 17: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus - 103, // 18: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel - 104, // 19: inventory.v1.PostgresExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 17: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus + 106, // 18: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel + 107, // 19: inventory.v1.PostgresExporter.metrics_resolutions:type_name -> common.MetricsResolutions 70, // 20: inventory.v1.ProxySQLExporter.custom_labels:type_name -> inventory.v1.ProxySQLExporter.CustomLabelsEntry - 102, // 21: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus - 103, // 22: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel - 104, // 23: inventory.v1.ProxySQLExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 21: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus + 106, // 22: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel + 107, // 23: inventory.v1.ProxySQLExporter.metrics_resolutions:type_name -> common.MetricsResolutions 71, // 24: inventory.v1.ValkeyExporter.custom_labels:type_name -> inventory.v1.ValkeyExporter.CustomLabelsEntry - 102, // 25: inventory.v1.ValkeyExporter.status:type_name -> inventory.v1.AgentStatus - 104, // 26: inventory.v1.ValkeyExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 25: inventory.v1.ValkeyExporter.status:type_name -> inventory.v1.AgentStatus + 107, // 26: inventory.v1.ValkeyExporter.metrics_resolutions:type_name -> common.MetricsResolutions 72, // 27: inventory.v1.QANMySQLPerfSchemaAgent.custom_labels:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry - 102, // 28: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus - 103, // 29: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel + 105, // 28: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus + 106, // 29: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel 73, // 30: inventory.v1.QANMySQLPerfSchemaAgent.extra_dsn_params:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.ExtraDsnParamsEntry 74, // 31: inventory.v1.QANMySQLSlowlogAgent.custom_labels:type_name -> inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry - 102, // 32: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus - 103, // 33: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel + 105, // 32: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus + 106, // 33: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel 75, // 34: inventory.v1.QANMySQLSlowlogAgent.extra_dsn_params:type_name -> inventory.v1.QANMySQLSlowlogAgent.ExtraDsnParamsEntry 76, // 35: inventory.v1.QANMongoDBProfilerAgent.custom_labels:type_name -> inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry - 102, // 36: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus - 103, // 37: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel + 105, // 36: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus + 106, // 37: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel 77, // 38: inventory.v1.QANMongoDBMongologAgent.custom_labels:type_name -> inventory.v1.QANMongoDBMongologAgent.CustomLabelsEntry - 102, // 39: inventory.v1.QANMongoDBMongologAgent.status:type_name -> inventory.v1.AgentStatus - 103, // 40: inventory.v1.QANMongoDBMongologAgent.log_level:type_name -> inventory.v1.LogLevel + 105, // 39: inventory.v1.QANMongoDBMongologAgent.status:type_name -> inventory.v1.AgentStatus + 106, // 40: inventory.v1.QANMongoDBMongologAgent.log_level:type_name -> inventory.v1.LogLevel 78, // 41: inventory.v1.QANPostgreSQLPgStatementsAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry - 102, // 42: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus - 103, // 43: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel + 105, // 42: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus + 106, // 43: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel 79, // 44: inventory.v1.QANPostgreSQLPgStatMonitorAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry - 102, // 45: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus - 103, // 46: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel + 105, // 45: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus + 106, // 46: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel 80, // 47: inventory.v1.RDSExporter.custom_labels:type_name -> inventory.v1.RDSExporter.CustomLabelsEntry - 102, // 48: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus - 103, // 49: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel - 104, // 50: inventory.v1.RDSExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 48: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus + 106, // 49: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel + 107, // 50: inventory.v1.RDSExporter.metrics_resolutions:type_name -> common.MetricsResolutions 81, // 51: inventory.v1.ExternalExporter.custom_labels:type_name -> inventory.v1.ExternalExporter.CustomLabelsEntry - 104, // 52: inventory.v1.ExternalExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 107, // 52: inventory.v1.ExternalExporter.metrics_resolutions:type_name -> common.MetricsResolutions 82, // 53: inventory.v1.AzureDatabaseExporter.custom_labels:type_name -> inventory.v1.AzureDatabaseExporter.CustomLabelsEntry - 102, // 54: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus - 103, // 55: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel - 104, // 56: inventory.v1.AzureDatabaseExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 105, // 57: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap - 104, // 58: inventory.v1.ChangeCommonAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 54: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus + 106, // 55: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel + 107, // 56: inventory.v1.AzureDatabaseExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 108, // 57: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap + 107, // 58: inventory.v1.ChangeCommonAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions 0, // 59: inventory.v1.ListAgentsRequest.agent_type:type_name -> inventory.v1.AgentType 1, // 60: inventory.v1.ListAgentsResponse.pmm_agent:type_name -> inventory.v1.PMMAgent 2, // 61: inventory.v1.ListAgentsResponse.vm_agent:type_name -> inventory.v1.VMAgent @@ -10129,83 +10171,86 @@ var file_inventory_v1_agents_proto_depIdxs = []int32{ 9, // 159: inventory.v1.ChangeAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter 83, // 160: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry 84, // 161: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry - 103, // 162: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 163: inventory.v1.ChangeNodeExporterParams.custom_labels:type_name -> common.StringMap - 104, // 164: inventory.v1.ChangeNodeExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 106, // 162: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel + 108, // 163: inventory.v1.ChangeNodeExporterParams.custom_labels:type_name -> common.StringMap + 107, // 164: inventory.v1.ChangeNodeExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions 85, // 165: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry - 103, // 166: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 166: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel 86, // 167: inventory.v1.AddMySQLdExporterParams.extra_dsn_params:type_name -> inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry - 105, // 168: inventory.v1.ChangeMySQLdExporterParams.custom_labels:type_name -> common.StringMap - 104, // 169: inventory.v1.ChangeMySQLdExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 108, // 168: inventory.v1.ChangeMySQLdExporterParams.custom_labels:type_name -> common.StringMap + 107, // 169: inventory.v1.ChangeMySQLdExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions 87, // 170: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - 103, // 171: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 172: inventory.v1.ChangeMongoDBExporterParams.custom_labels:type_name -> common.StringMap - 104, // 173: inventory.v1.ChangeMongoDBExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 88, // 174: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - 103, // 175: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 176: inventory.v1.ChangePostgresExporterParams.custom_labels:type_name -> common.StringMap - 104, // 177: inventory.v1.ChangePostgresExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 89, // 178: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - 103, // 179: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 180: inventory.v1.ChangeProxySQLExporterParams.custom_labels:type_name -> common.StringMap - 104, // 181: inventory.v1.ChangeProxySQLExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 90, // 182: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - 103, // 183: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel - 91, // 184: inventory.v1.AddQANMySQLPerfSchemaAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry - 105, // 185: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> common.StringMap - 104, // 186: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 92, // 187: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - 103, // 188: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel - 93, // 189: inventory.v1.AddQANMySQLSlowlogAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry - 105, // 190: inventory.v1.ChangeQANMySQLSlowlogAgentParams.custom_labels:type_name -> common.StringMap - 104, // 191: inventory.v1.ChangeQANMySQLSlowlogAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 94, // 192: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - 103, // 193: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 194: inventory.v1.ChangeQANMongoDBProfilerAgentParams.custom_labels:type_name -> common.StringMap - 104, // 195: inventory.v1.ChangeQANMongoDBProfilerAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 95, // 196: inventory.v1.AddQANMongoDBMongologAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry - 103, // 197: inventory.v1.AddQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 198: inventory.v1.ChangeQANMongoDBMongologAgentParams.custom_labels:type_name -> common.StringMap - 104, // 199: inventory.v1.ChangeQANMongoDBMongologAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 96, // 200: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - 103, // 201: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 202: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> common.StringMap - 104, // 203: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 97, // 204: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - 103, // 205: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 206: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> common.StringMap - 104, // 207: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 98, // 208: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry - 103, // 209: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 210: inventory.v1.ChangeRDSExporterParams.custom_labels:type_name -> common.StringMap - 104, // 211: inventory.v1.ChangeRDSExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 99, // 212: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry - 105, // 213: inventory.v1.ChangeExternalExporterParams.custom_labels:type_name -> common.StringMap - 104, // 214: inventory.v1.ChangeExternalExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 100, // 215: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - 103, // 216: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel - 105, // 217: inventory.v1.ChangeAzureDatabaseExporterParams.custom_labels:type_name -> common.StringMap - 104, // 218: inventory.v1.ChangeAzureDatabaseExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 101, // 219: inventory.v1.AddValkeyExporterParams.custom_labels:type_name -> inventory.v1.AddValkeyExporterParams.CustomLabelsEntry - 105, // 220: inventory.v1.ChangeValkeyExporterParams.custom_labels:type_name -> common.StringMap - 104, // 221: inventory.v1.ChangeValkeyExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 20, // 222: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest - 22, // 223: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest - 24, // 224: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest - 26, // 225: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest - 28, // 226: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest - 62, // 227: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest - 21, // 228: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse - 23, // 229: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse - 25, // 230: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse - 27, // 231: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse - 29, // 232: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse - 63, // 233: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse - 228, // [228:234] is the sub-list for method output_type - 222, // [222:228] is the sub-list for method input_type - 222, // [222:222] is the sub-list for extension type_name - 222, // [222:222] is the sub-list for extension extendee - 0, // [0:222] is the sub-list for field type_name + 106, // 171: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel + 88, // 172: inventory.v1.AddMongoDBExporterParams.agent_environment_variables:type_name -> inventory.v1.AddMongoDBExporterParams.AgentEnvironmentVariablesEntry + 108, // 173: inventory.v1.ChangeMongoDBExporterParams.custom_labels:type_name -> common.StringMap + 107, // 174: inventory.v1.ChangeMongoDBExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 89, // 175: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + 106, // 176: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel + 108, // 177: inventory.v1.ChangePostgresExporterParams.custom_labels:type_name -> common.StringMap + 107, // 178: inventory.v1.ChangePostgresExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 90, // 179: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + 106, // 180: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel + 108, // 181: inventory.v1.ChangeProxySQLExporterParams.custom_labels:type_name -> common.StringMap + 107, // 182: inventory.v1.ChangeProxySQLExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 91, // 183: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + 106, // 184: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel + 92, // 185: inventory.v1.AddQANMySQLPerfSchemaAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry + 108, // 186: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> common.StringMap + 107, // 187: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 93, // 188: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + 106, // 189: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel + 94, // 190: inventory.v1.AddQANMySQLSlowlogAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry + 108, // 191: inventory.v1.ChangeQANMySQLSlowlogAgentParams.custom_labels:type_name -> common.StringMap + 107, // 192: inventory.v1.ChangeQANMySQLSlowlogAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 95, // 193: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + 106, // 194: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel + 96, // 195: inventory.v1.AddQANMongoDBProfilerAgentParams.agent_environment_variables:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.AgentEnvironmentVariablesEntry + 108, // 196: inventory.v1.ChangeQANMongoDBProfilerAgentParams.custom_labels:type_name -> common.StringMap + 107, // 197: inventory.v1.ChangeQANMongoDBProfilerAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 97, // 198: inventory.v1.AddQANMongoDBMongologAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry + 106, // 199: inventory.v1.AddQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel + 98, // 200: inventory.v1.AddQANMongoDBMongologAgentParams.agent_environment_variables:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.AgentEnvironmentVariablesEntry + 108, // 201: inventory.v1.ChangeQANMongoDBMongologAgentParams.custom_labels:type_name -> common.StringMap + 107, // 202: inventory.v1.ChangeQANMongoDBMongologAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 99, // 203: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + 106, // 204: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel + 108, // 205: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> common.StringMap + 107, // 206: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 100, // 207: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + 106, // 208: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel + 108, // 209: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> common.StringMap + 107, // 210: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 101, // 211: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry + 106, // 212: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel + 108, // 213: inventory.v1.ChangeRDSExporterParams.custom_labels:type_name -> common.StringMap + 107, // 214: inventory.v1.ChangeRDSExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 102, // 215: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry + 108, // 216: inventory.v1.ChangeExternalExporterParams.custom_labels:type_name -> common.StringMap + 107, // 217: inventory.v1.ChangeExternalExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 103, // 218: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + 106, // 219: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel + 108, // 220: inventory.v1.ChangeAzureDatabaseExporterParams.custom_labels:type_name -> common.StringMap + 107, // 221: inventory.v1.ChangeAzureDatabaseExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 104, // 222: inventory.v1.AddValkeyExporterParams.custom_labels:type_name -> inventory.v1.AddValkeyExporterParams.CustomLabelsEntry + 108, // 223: inventory.v1.ChangeValkeyExporterParams.custom_labels:type_name -> common.StringMap + 107, // 224: inventory.v1.ChangeValkeyExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 20, // 225: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest + 22, // 226: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest + 24, // 227: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest + 26, // 228: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest + 28, // 229: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest + 62, // 230: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest + 21, // 231: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse + 23, // 232: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse + 25, // 233: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse + 27, // 234: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse + 29, // 235: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse + 63, // 236: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse + 231, // [231:237] is the sub-list for method output_type + 225, // [225:231] is the sub-list for method input_type + 225, // [225:225] is the sub-list for extension type_name + 225, // [225:225] is the sub-list for extension extendee + 0, // [0:225] is the sub-list for field type_name } func init() { file_inventory_v1_agents_proto_init() } @@ -10330,7 +10375,7 @@ func file_inventory_v1_agents_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_inventory_v1_agents_proto_rawDesc), len(file_inventory_v1_agents_proto_rawDesc)), NumEnums: 1, - NumMessages: 101, + NumMessages: 104, NumExtensions: 0, NumServices: 1, }, diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index af3f6255a8d..fc98ddff469 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -8614,6 +8614,8 @@ func (m *AddMongoDBExporterParams) validate(all bool) error { // no validation rules for ExposeExporter + // no validation rules for AgentEnvironmentVariables + if len(errors) > 0 { return AddMongoDBExporterParamsMultiError(errors) } @@ -10268,6 +10270,8 @@ func (m *AddQANMongoDBProfilerAgentParams) validate(all bool) error { // no validation rules for LogLevel + // no validation rules for AgentEnvironmentVariables + if len(errors) > 0 { return AddQANMongoDBProfilerAgentParamsMultiError(errors) } @@ -10594,6 +10598,8 @@ func (m *AddQANMongoDBMongologAgentParams) validate(all bool) error { // no validation rules for LogLevel + // no validation rules for AgentEnvironmentVariables + if len(errors) > 0 { return AddQANMongoDBMongologAgentParamsMultiError(errors) } diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index e9dd7c9f8ef..0d17039f594 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -1030,6 +1030,8 @@ message AddMongoDBExporterParams { LogLevel log_level = 19; // Optionally expose the exporter process on all public interfaces bool expose_exporter = 20; + // Environment variables to set for the exporter process. + map agent_environment_variables = 21; } message ChangeMongoDBExporterParams { @@ -1269,8 +1271,10 @@ message AddQANMongoDBProfilerAgentParams { string authentication_mechanism = 13; // Authentication database. string authentication_database = 14; - // Log level for exporter. + // Log level for agent. LogLevel log_level = 15; + // Environment variables to set for the agent process. + map agent_environment_variables = 16; } message ChangeQANMongoDBProfilerAgentParams { @@ -1317,8 +1321,10 @@ message AddQANMongoDBMongologAgentParams { string authentication_mechanism = 13; // Authentication database. string authentication_database = 14; - // Log level for exporter. + // Log level for agent. LogLevel log_level = 15; + // Environment variables to set for the agent process. + map agent_environment_variables = 16; } message ChangeQANMongoDBMongologAgentParams { diff --git a/api/inventory/v1/json/client/agents_service/add_agent_responses.go b/api/inventory/v1/json/client/agents_service/add_agent_responses.go index 9137686f21d..8241ee39bcd 100644 --- a/api/inventory/v1/json/client/agents_service/add_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/add_agent_responses.go @@ -6705,6 +6705,9 @@ type AddAgentParamsBodyMongodbExporter struct { // Optionally expose the exporter process on all public interfaces ExposeExporter bool `json:"expose_exporter,omitempty"` + + // Environment variables to set for the exporter process. + AgentEnvironmentVariables map[string]string `json:"agent_environment_variables,omitempty"` } // Validate validates this add agent params body mongodb exporter @@ -7459,6 +7462,9 @@ type AddAgentParamsBodyQANMongodbMongologAgent struct { // - LOG_LEVEL_UNSPECIFIED: Auto // Enum: ["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"] LogLevel *string `json:"log_level,omitempty"` + + // Environment variables to set for the agent process. + AgentEnvironmentVariables map[string]string `json:"agent_environment_variables,omitempty"` } // Validate validates this add agent params body QAN mongodb mongolog agent @@ -7606,6 +7612,9 @@ type AddAgentParamsBodyQANMongodbProfilerAgent struct { // - LOG_LEVEL_UNSPECIFIED: Auto // Enum: ["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"] LogLevel *string `json:"log_level,omitempty"` + + // Environment variables to set for the agent process. + AgentEnvironmentVariables map[string]string `json:"agent_environment_variables,omitempty"` } // Validate validates this add agent params body QAN mongodb profiler agent diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index ecc1872f950..838b7be56d6 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -2417,6 +2417,14 @@ "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", "x-order": 19 + }, + "agent_environment_variables": { + "description": "Environment variables to set for the exporter process.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 20 } }, "x-order": 3 @@ -3133,6 +3141,14 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 + }, + "agent_environment_variables": { + "description": "Environment variables to set for the agent process.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 15 } }, "x-order": 11 @@ -3228,6 +3244,14 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 + }, + "agent_environment_variables": { + "description": "Environment variables to set for the agent process.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 15 } }, "x-order": 12 diff --git a/api/management/v1/json/client/management_service/add_service_responses.go b/api/management/v1/json/client/management_service/add_service_responses.go index c65c2a2c071..eceeb3f9c38 100644 --- a/api/management/v1/json/client/management_service/add_service_responses.go +++ b/api/management/v1/json/client/management_service/add_service_responses.go @@ -9581,6 +9581,9 @@ type AddServiceParamsBodyMongodb struct { // Optionally expose the exporter process on all public interfaces ExposeExporter bool `json:"expose_exporter,omitempty"` + // Optionally, set environment variables that'll be passed to agent processes + AgentEnvironmentVariables map[string]string `json:"agent_environment_variables,omitempty"` + // add node AddNode *AddServiceParamsBodyMongodbAddNode `json:"add_node,omitempty"` } diff --git a/api/management/v1/json/v1.json b/api/management/v1/json/v1.json index a8a3b6f60c4..ac7842ff5a0 100644 --- a/api/management/v1/json/v1.json +++ b/api/management/v1/json/v1.json @@ -2495,6 +2495,14 @@ "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", "x-order": 32 + }, + "agent_environment_variables": { + "type": "object", + "title": "Optionally, set environment variables that'll be passed to agent processes", + "additionalProperties": { + "type": "string" + }, + "x-order": 33 } }, "x-order": 1 diff --git a/api/management/v1/mongodb.pb.go b/api/management/v1/mongodb.pb.go index d29b9caf6c2..9234951a988 100644 --- a/api/management/v1/mongodb.pb.go +++ b/api/management/v1/mongodb.pb.go @@ -104,8 +104,10 @@ type AddMongoDBServiceParams struct { LogLevel v1.LogLevel `protobuf:"varint,33,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` // Optionally expose the exporter process on all public interfaces ExposeExporter bool `protobuf:"varint,34,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Optionally, set environment variables that'll be passed to agent processes + AgentEnvironmentVariables map[string]string `protobuf:"bytes,36,rep,name=agent_environment_variables,json=agentEnvironmentVariables,proto3" json:"agent_environment_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AddMongoDBServiceParams) Reset() { @@ -369,6 +371,13 @@ func (x *AddMongoDBServiceParams) GetExposeExporter() bool { return false } +func (x *AddMongoDBServiceParams) GetAgentEnvironmentVariables() map[string]string { + if x != nil { + return x.AgentEnvironmentVariables + } + return nil +} + type MongoDBServiceResult struct { state protoimpl.MessageState `protogen:"open.v1"` Service *v1.MongoDBService `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` @@ -441,7 +450,7 @@ var File_management_v1_mongodb_proto protoreflect.FileDescriptor const file_management_v1_mongodb_proto_rawDesc = "" + "\n" + - "\x1bmanagement/v1/mongodb.proto\x12\rmanagement.v1\x1a\x19inventory/v1/agents.proto\x1a\x1cinventory/v1/log_level.proto\x1a\x1binventory/v1/services.proto\x1a\x1bmanagement/v1/metrics.proto\x1a\x18management/v1/node.proto\x1a\x17validate/validate.proto\"\x83\f\n" + + "\x1bmanagement/v1/mongodb.proto\x12\rmanagement.v1\x1a\x19inventory/v1/agents.proto\x1a\x1cinventory/v1/log_level.proto\x1a\x1binventory/v1/services.proto\x1a\x1bmanagement/v1/metrics.proto\x1a\x18management/v1/node.proto\x1a\x17validate/validate.proto\"\xd9\r\n" + "\x17AddMongoDBServiceParams\x12\x17\n" + "\anode_id\x18\x01 \x01(\tR\x06nodeId\x12\x1b\n" + "\tnode_name\x18\x02 \x01(\tR\bnodeName\x127\n" + @@ -477,9 +486,13 @@ const file_management_v1_mongodb_proto_rawDesc = "" + "\x11collections_limit\x18\x1f \x01(\x05R\x10collectionsLimit\x122\n" + "\x15enable_all_collectors\x18 \x01(\bR\x13enableAllCollectors\x123\n" + "\tlog_level\x18! \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12'\n" + - "\x0fexpose_exporter\x18\" \x01(\bR\x0eexposeExporter\x1a?\n" + + "\x0fexpose_exporter\x18\" \x01(\bR\x0eexposeExporter\x12\x85\x01\n" + + "\x1bagent_environment_variables\x18$ \x03(\v2E.management.v1.AddMongoDBServiceParams.AgentEnvironmentVariablesEntryR\x19agentEnvironmentVariables\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aL\n" + + "\x1eAgentEnvironmentVariablesEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01J\x04\b\b\x10\tR\x17query_examples_disabled\"\xca\x02\n" + "\x14MongoDBServiceResult\x126\n" + "\aservice\x18\x01 \x01(\v2\x1c.inventory.v1.MongoDBServiceR\aservice\x12H\n" + @@ -501,35 +514,37 @@ func file_management_v1_mongodb_proto_rawDescGZIP() []byte { } var ( - file_management_v1_mongodb_proto_msgTypes = make([]protoimpl.MessageInfo, 3) + file_management_v1_mongodb_proto_msgTypes = make([]protoimpl.MessageInfo, 4) file_management_v1_mongodb_proto_goTypes = []any{ (*AddMongoDBServiceParams)(nil), // 0: management.v1.AddMongoDBServiceParams (*MongoDBServiceResult)(nil), // 1: management.v1.MongoDBServiceResult nil, // 2: management.v1.AddMongoDBServiceParams.CustomLabelsEntry - (*AddNodeParams)(nil), // 3: management.v1.AddNodeParams - (MetricsMode)(0), // 4: management.v1.MetricsMode - (v1.LogLevel)(0), // 5: inventory.v1.LogLevel - (*v1.MongoDBService)(nil), // 6: inventory.v1.MongoDBService - (*v1.MongoDBExporter)(nil), // 7: inventory.v1.MongoDBExporter - (*v1.QANMongoDBProfilerAgent)(nil), // 8: inventory.v1.QANMongoDBProfilerAgent - (*v1.QANMongoDBMongologAgent)(nil), // 9: inventory.v1.QANMongoDBMongologAgent + nil, // 3: management.v1.AddMongoDBServiceParams.AgentEnvironmentVariablesEntry + (*AddNodeParams)(nil), // 4: management.v1.AddNodeParams + (MetricsMode)(0), // 5: management.v1.MetricsMode + (v1.LogLevel)(0), // 6: inventory.v1.LogLevel + (*v1.MongoDBService)(nil), // 7: inventory.v1.MongoDBService + (*v1.MongoDBExporter)(nil), // 8: inventory.v1.MongoDBExporter + (*v1.QANMongoDBProfilerAgent)(nil), // 9: inventory.v1.QANMongoDBProfilerAgent + (*v1.QANMongoDBMongologAgent)(nil), // 10: inventory.v1.QANMongoDBMongologAgent } ) var file_management_v1_mongodb_proto_depIdxs = []int32{ - 3, // 0: management.v1.AddMongoDBServiceParams.add_node:type_name -> management.v1.AddNodeParams - 2, // 1: management.v1.AddMongoDBServiceParams.custom_labels:type_name -> management.v1.AddMongoDBServiceParams.CustomLabelsEntry - 4, // 2: management.v1.AddMongoDBServiceParams.metrics_mode:type_name -> management.v1.MetricsMode - 5, // 3: management.v1.AddMongoDBServiceParams.log_level:type_name -> inventory.v1.LogLevel - 6, // 4: management.v1.MongoDBServiceResult.service:type_name -> inventory.v1.MongoDBService - 7, // 5: management.v1.MongoDBServiceResult.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 8, // 6: management.v1.MongoDBServiceResult.qan_mongodb_profiler:type_name -> inventory.v1.QANMongoDBProfilerAgent - 9, // 7: management.v1.MongoDBServiceResult.qan_mongodb_mongolog:type_name -> inventory.v1.QANMongoDBMongologAgent - 8, // [8:8] is the sub-list for method output_type - 8, // [8:8] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 4, // 0: management.v1.AddMongoDBServiceParams.add_node:type_name -> management.v1.AddNodeParams + 2, // 1: management.v1.AddMongoDBServiceParams.custom_labels:type_name -> management.v1.AddMongoDBServiceParams.CustomLabelsEntry + 5, // 2: management.v1.AddMongoDBServiceParams.metrics_mode:type_name -> management.v1.MetricsMode + 6, // 3: management.v1.AddMongoDBServiceParams.log_level:type_name -> inventory.v1.LogLevel + 3, // 4: management.v1.AddMongoDBServiceParams.agent_environment_variables:type_name -> management.v1.AddMongoDBServiceParams.AgentEnvironmentVariablesEntry + 7, // 5: management.v1.MongoDBServiceResult.service:type_name -> inventory.v1.MongoDBService + 8, // 6: management.v1.MongoDBServiceResult.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 9, // 7: management.v1.MongoDBServiceResult.qan_mongodb_profiler:type_name -> inventory.v1.QANMongoDBProfilerAgent + 10, // 8: management.v1.MongoDBServiceResult.qan_mongodb_mongolog:type_name -> inventory.v1.QANMongoDBMongologAgent + 9, // [9:9] is the sub-list for method output_type + 9, // [9:9] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name } func init() { file_management_v1_mongodb_proto_init() } @@ -545,7 +560,7 @@ func file_management_v1_mongodb_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_management_v1_mongodb_proto_rawDesc), len(file_management_v1_mongodb_proto_rawDesc)), NumEnums: 0, - NumMessages: 3, + NumMessages: 4, NumExtensions: 0, NumServices: 0, }, diff --git a/api/management/v1/mongodb.pb.validate.go b/api/management/v1/mongodb.pb.validate.go index cf5a5df9b7d..554ec9f8255 100644 --- a/api/management/v1/mongodb.pb.validate.go +++ b/api/management/v1/mongodb.pb.validate.go @@ -168,6 +168,8 @@ func (m *AddMongoDBServiceParams) validate(all bool) error { // no validation rules for ExposeExporter + // no validation rules for AgentEnvironmentVariables + if len(errors) > 0 { return AddMongoDBServiceParamsMultiError(errors) } diff --git a/api/management/v1/mongodb.proto b/api/management/v1/mongodb.proto index ea626bda872..d81d5682dec 100644 --- a/api/management/v1/mongodb.proto +++ b/api/management/v1/mongodb.proto @@ -92,6 +92,8 @@ message AddMongoDBServiceParams { inventory.v1.LogLevel log_level = 33; // Optionally expose the exporter process on all public interfaces bool expose_exporter = 34; + // Optionally, set environment variables that'll be passed to agent processes + map agent_environment_variables = 36; } message MongoDBServiceResult { diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 58296dcb696..33b570eadc7 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -7551,6 +7551,14 @@ "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", "x-order": 19 + }, + "agent_environment_variables": { + "description": "Environment variables to set for the exporter process.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 20 } }, "x-order": 3 @@ -8267,6 +8275,14 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 + }, + "agent_environment_variables": { + "description": "Environment variables to set for the agent process.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 15 } }, "x-order": 11 @@ -8362,6 +8378,14 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 + }, + "agent_environment_variables": { + "description": "Environment variables to set for the agent process.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 15 } }, "x-order": 12 @@ -21743,6 +21767,14 @@ "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", "x-order": 32 + }, + "agent_environment_variables": { + "type": "object", + "title": "Optionally, set environment variables that'll be passed to agent processes", + "additionalProperties": { + "type": "string" + }, + "x-order": 33 } }, "x-order": 1 diff --git a/api/swagger/swagger.json b/api/swagger/swagger.json index 76c0c334412..4f1d2f1e4e1 100644 --- a/api/swagger/swagger.json +++ b/api/swagger/swagger.json @@ -6593,6 +6593,14 @@ "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", "x-order": 19 + }, + "agent_environment_variables": { + "description": "Environment variables to set for the exporter process.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 20 } }, "x-order": 3 @@ -7309,6 +7317,14 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 + }, + "agent_environment_variables": { + "description": "Environment variables to set for the agent process.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 15 } }, "x-order": 11 @@ -7404,6 +7420,14 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 + }, + "agent_environment_variables": { + "description": "Environment variables to set for the agent process.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 15 } }, "x-order": 12 @@ -20785,6 +20809,14 @@ "type": "boolean", "title": "Optionally expose the exporter process on all public interfaces", "x-order": 32 + }, + "agent_environment_variables": { + "type": "object", + "title": "Optionally, set environment variables that'll be passed to agent processes", + "additionalProperties": { + "type": "string" + }, + "x-order": 33 } }, "x-order": 1 diff --git a/managed/models/agent_helpers.go b/managed/models/agent_helpers.go index d2edd1c897e..62fb1cb741f 100644 --- a/managed/models/agent_helpers.go +++ b/managed/models/agent_helpers.go @@ -116,6 +116,7 @@ func ValkeyOptionsFromRequest(params ValkeyOptionsParams) ValkeyOptions { // MongoDBOptionsParams contains methods to create MongoDBOptions object. type MongoDBOptionsParams interface { + GetAgentEnvironmentVariables() map[string]string GetTlsCertificateKey() string GetTlsCertificateKeyFilePassword() string GetTlsCa() string @@ -134,6 +135,7 @@ type MongoDBExtendedOptionsParams interface { func MongoDBOptionsFromRequest(params MongoDBOptionsParams) MongoDBOptions { mdbOptions := MongoDBOptions{} + mdbOptions.AgentEnvironmentVariables = params.GetAgentEnvironmentVariables() mdbOptions.TLSCertificateKey = params.GetTlsCertificateKey() mdbOptions.TLSCertificateKeyFilePassword = params.GetTlsCertificateKeyFilePassword() mdbOptions.TLSCa = params.GetTlsCa() diff --git a/managed/models/agent_model.go b/managed/models/agent_model.go index c281e866470..b18a19c5f60 100644 --- a/managed/models/agent_model.go +++ b/managed/models/agent_model.go @@ -180,14 +180,15 @@ func (c AzureOptions) IsEmpty() bool { // MongoDBOptions represents structure for special MongoDB options. type MongoDBOptions struct { - TLSCertificateKey string `json:"tls_certificate_key"` - TLSCertificateKeyFilePassword string `json:"tls_certificate_key_file_password"` - TLSCa string `json:"tls_ca"` - AuthenticationMechanism string `json:"authentication_mechanism"` - AuthenticationDatabase string `json:"authentication_database"` - StatsCollections []string `json:"stats_collections"` - CollectionsLimit int32 `json:"collections_limit"` - EnableAllCollectors bool `json:"enable_all_collectors"` + TLSCertificateKey string `json:"tls_certificate_key"` + TLSCertificateKeyFilePassword string `json:"tls_certificate_key_file_password"` + TLSCa string `json:"tls_ca"` + AuthenticationMechanism string `json:"authentication_mechanism"` + AuthenticationDatabase string `json:"authentication_database"` + StatsCollections []string `json:"stats_collections"` + CollectionsLimit int32 `json:"collections_limit"` + EnableAllCollectors bool `json:"enable_all_collectors"` + AgentEnvironmentVariables map[string]string `json:"agent_environment_variables"` } // Value implements database/sql/driver.Valuer interface. Should be defined on the value. diff --git a/managed/services/agents/mongodb.go b/managed/services/agents/mongodb.go index f650fe12174..22a71f02d6d 100644 --- a/managed/services/agents/mongodb.go +++ b/managed/services/agents/mongodb.go @@ -57,8 +57,10 @@ func mongodbExporterConfig(node *models.Node, service *models.Service, exporter sort.Strings(args) database := exporter.MongoDBOptions.AuthenticationDatabase - env := []string{ - fmt.Sprintf("MONGODB_URI=%s", exporter.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: database}, tdp, pmmAgentVersion)), + env := make([]string, 0, 1+len(exporter.MongoDBOptions.AgentEnvironmentVariables)) + env = append(env, fmt.Sprintf("MONGODB_URI=%s", exporter.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: database}, tdp, pmmAgentVersion))) + for k, v := range exporter.MongoDBOptions.AgentEnvironmentVariables { + env = append(env, fmt.Sprintf("%s=%s", k, v)) } res := &agentv1.SetStateRequest_AgentProcess{ @@ -165,6 +167,7 @@ func qanMongoDBProfilerAgentConfig(service *models.Service, agent *models.Agent, Dsn: agent.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: ""}, nil, pmmAgentVersion), DisableQueryExamples: agent.QANOptions.QueryExamplesDisabled, MaxQueryLength: agent.QANOptions.MaxQueryLength, + Env: agent.MongoDBOptions.AgentEnvironmentVariables, TextFiles: &agentv1.TextFiles{ Files: agent.Files(), TemplateLeftDelim: tdp.Left, @@ -182,6 +185,7 @@ func qanMongoDBMongologAgentConfig(service *models.Service, agent *models.Agent, Dsn: agent.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: ""}, nil, pmmAgentVersion), DisableQueryExamples: agent.QANOptions.QueryExamplesDisabled, MaxQueryLength: agent.QANOptions.MaxQueryLength, + Env: agent.MongoDBOptions.AgentEnvironmentVariables, TextFiles: &agentv1.TextFiles{ Files: agent.Files(), TemplateLeftDelim: tdp.Left, From cb6d44d4d37adbeced6b2ca18637a6ad99cbfedc Mon Sep 17 00:00:00 2001 From: Michael Okoko Date: Tue, 28 Oct 2025 23:34:39 +0100 Subject: [PATCH 2/9] move variables to agent model --- managed/models/agent_helpers.go | 44 +++++++++++---------- managed/models/agent_model.go | 55 +++++++++++++++++--------- managed/models/agent_model_reform.go | 49 ++++++++++++----------- managed/models/database.go | 3 ++ managed/services/agents/mongodb.go | 11 ++++-- managed/services/inventory/agents.go | 49 ++++++++++++----------- managed/services/management/mongodb.go | 45 +++++++++++---------- 7 files changed, 147 insertions(+), 109 deletions(-) diff --git a/managed/models/agent_helpers.go b/managed/models/agent_helpers.go index 62fb1cb741f..c44e600dced 100644 --- a/managed/models/agent_helpers.go +++ b/managed/models/agent_helpers.go @@ -116,7 +116,6 @@ func ValkeyOptionsFromRequest(params ValkeyOptionsParams) ValkeyOptions { // MongoDBOptionsParams contains methods to create MongoDBOptions object. type MongoDBOptionsParams interface { - GetAgentEnvironmentVariables() map[string]string GetTlsCertificateKey() string GetTlsCertificateKeyFilePassword() string GetTlsCa() string @@ -135,7 +134,6 @@ type MongoDBExtendedOptionsParams interface { func MongoDBOptionsFromRequest(params MongoDBOptionsParams) MongoDBOptions { mdbOptions := MongoDBOptions{} - mdbOptions.AgentEnvironmentVariables = params.GetAgentEnvironmentVariables() mdbOptions.TLSCertificateKey = params.GetTlsCertificateKey() mdbOptions.TLSCertificateKeyFilePassword = params.GetTlsCertificateKeyFilePassword() mdbOptions.TLSCa = params.GetTlsCa() @@ -761,25 +759,26 @@ func CreateExternalExporter(q *reform.Querier, params *CreateExternalExporterPar // CreateAgentParams params for add common exporter. type CreateAgentParams struct { - PMMAgentID string - NodeID string - ServiceID string - Username string - Password string - AgentPassword string - CustomLabels map[string]string - TLS bool - TLSSkipVerify bool - LogLevel string - Disabled bool - ExporterOptions ExporterOptions - QANOptions QANOptions - AWSOptions AWSOptions - AzureOptions AzureOptions - MongoDBOptions MongoDBOptions - MySQLOptions MySQLOptions - PostgreSQLOptions PostgreSQLOptions - ValkeyOptions ValkeyOptions + PMMAgentID string + NodeID string + ServiceID string + Username string + Password string + AgentPassword string + CustomLabels map[string]string + EnvironmentVariables map[string]string + TLS bool + TLSSkipVerify bool + LogLevel string + Disabled bool + ExporterOptions ExporterOptions + QANOptions QANOptions + AWSOptions AWSOptions + AzureOptions AzureOptions + MongoDBOptions MongoDBOptions + MySQLOptions MySQLOptions + PostgreSQLOptions PostgreSQLOptions + ValkeyOptions ValkeyOptions } func compatibleNodeAndAgent(nodeType NodeType, agentType AgentType) bool { @@ -925,6 +924,9 @@ func CreateAgent(q *reform.Querier, agentType AgentType, params *CreateAgentPara if err := row.SetCustomLabels(params.CustomLabels); err != nil { return nil, err } + if err := row.SetEnvironmentVariables(params.EnvironmentVariables); err != nil { + return nil, err + } encryptedAgent := EncryptAgent(trimUnicodeNilsInCertFiles(*row)) if err := q.Insert(&encryptedAgent); err != nil { diff --git a/managed/models/agent_model.go b/managed/models/agent_model.go index b18a19c5f60..091e2043479 100644 --- a/managed/models/agent_model.go +++ b/managed/models/agent_model.go @@ -180,15 +180,14 @@ func (c AzureOptions) IsEmpty() bool { // MongoDBOptions represents structure for special MongoDB options. type MongoDBOptions struct { - TLSCertificateKey string `json:"tls_certificate_key"` - TLSCertificateKeyFilePassword string `json:"tls_certificate_key_file_password"` - TLSCa string `json:"tls_ca"` - AuthenticationMechanism string `json:"authentication_mechanism"` - AuthenticationDatabase string `json:"authentication_database"` - StatsCollections []string `json:"stats_collections"` - CollectionsLimit int32 `json:"collections_limit"` - EnableAllCollectors bool `json:"enable_all_collectors"` - AgentEnvironmentVariables map[string]string `json:"agent_environment_variables"` + TLSCertificateKey string `json:"tls_certificate_key"` + TLSCertificateKeyFilePassword string `json:"tls_certificate_key_file_password"` + TLSCa string `json:"tls_ca"` + AuthenticationMechanism string `json:"authentication_mechanism"` + AuthenticationDatabase string `json:"authentication_database"` + StatsCollections []string `json:"stats_collections"` + CollectionsLimit int32 `json:"collections_limit"` + EnableAllCollectors bool `json:"enable_all_collectors"` } // Value implements database/sql/driver.Valuer interface. Should be defined on the value. @@ -296,15 +295,16 @@ func (c ValkeyOptions) IsEmpty() bool { // //reform:agents type Agent struct { - AgentID string `reform:"agent_id,pk"` - AgentType AgentType `reform:"agent_type"` - RunsOnNodeID *string `reform:"runs_on_node_id"` - ServiceID *string `reform:"service_id"` - NodeID *string `reform:"node_id"` - PMMAgentID *string `reform:"pmm_agent_id"` - CustomLabels []byte `reform:"custom_labels"` - CreatedAt time.Time `reform:"created_at"` - UpdatedAt time.Time `reform:"updated_at"` + AgentID string `reform:"agent_id,pk"` + AgentType AgentType `reform:"agent_type"` + RunsOnNodeID *string `reform:"runs_on_node_id"` + ServiceID *string `reform:"service_id"` + NodeID *string `reform:"node_id"` + PMMAgentID *string `reform:"pmm_agent_id"` + CustomLabels []byte `reform:"custom_labels"` + EnvironmentVariables []byte `reform:"environment_variables"` + CreatedAt time.Time `reform:"created_at"` + UpdatedAt time.Time `reform:"updated_at"` Disabled bool `reform:"disabled"` Status string `reform:"status"` @@ -339,6 +339,9 @@ func (s *Agent) BeforeInsert() error { if len(s.CustomLabels) == 0 { s.CustomLabels = nil } + if len(s.EnvironmentVariables) == 0 { + s.EnvironmentVariables = nil + } if s.Status == "" && s.AgentType != ExternalExporterType && s.AgentType != PMMAgentType { s.Status = AgentStatusUnknown } @@ -354,6 +357,9 @@ func (s *Agent) BeforeUpdate() error { if len(s.CustomLabels) == 0 { s.CustomLabels = nil } + if len(s.EnvironmentVariables) == 0 { + s.EnvironmentVariables = nil + } if s.Disabled { s.Status = agentStatusDone } @@ -367,6 +373,9 @@ func (s *Agent) AfterFind() error { if len(s.CustomLabels) == 0 { s.CustomLabels = nil } + if len(s.EnvironmentVariables) == 0 { + s.EnvironmentVariables = nil + } return nil } @@ -380,6 +389,16 @@ func (s *Agent) SetCustomLabels(m map[string]string) error { return setLabels(m, &s.CustomLabels) } +// GetEnvironmentVariables decodes environment variables. +func (s *Agent) GetEnvironmentVariables() (map[string]string, error) { + return getLabels(s.EnvironmentVariables) +} + +// SetEnvironmentVariables encodes environment variables. +func (s *Agent) SetEnvironmentVariables(m map[string]string) error { + return setLabels(m, &s.EnvironmentVariables) +} + // GetAgentPassword returns agent password, if it is empty then agent ID. func (s *Agent) GetAgentPassword() string { password := s.AgentID diff --git a/managed/models/agent_model_reform.go b/managed/models/agent_model_reform.go index 7d3e2a4dda5..2f6137d7a6d 100644 --- a/managed/models/agent_model_reform.go +++ b/managed/models/agent_model_reform.go @@ -35,6 +35,7 @@ func (v *agentTableType) Columns() []string { "node_id", "pmm_agent_id", "custom_labels", + "environment_variables", "created_at", "updated_at", "disabled", @@ -87,6 +88,7 @@ var AgentTable = &agentTableType{ {Name: "NodeID", Type: "*string", Column: "node_id"}, {Name: "PMMAgentID", Type: "*string", Column: "pmm_agent_id"}, {Name: "CustomLabels", Type: "[]uint8", Column: "custom_labels"}, + {Name: "EnvironmentVariables", Type: "[]uint8", Column: "environment_variables"}, {Name: "CreatedAt", Type: "time.Time", Column: "created_at"}, {Name: "UpdatedAt", Type: "time.Time", Column: "updated_at"}, {Name: "Disabled", Type: "bool", Column: "disabled"}, @@ -116,7 +118,7 @@ var AgentTable = &agentTableType{ // String returns a string representation of this struct or record. func (s Agent) String() string { - res := make([]string, 28) + res := make([]string, 29) res[0] = "AgentID: " + reform.Inspect(s.AgentID, true) res[1] = "AgentType: " + reform.Inspect(s.AgentType, true) res[2] = "RunsOnNodeID: " + reform.Inspect(s.RunsOnNodeID, true) @@ -124,27 +126,28 @@ func (s Agent) String() string { res[4] = "NodeID: " + reform.Inspect(s.NodeID, true) res[5] = "PMMAgentID: " + reform.Inspect(s.PMMAgentID, true) res[6] = "CustomLabels: " + reform.Inspect(s.CustomLabels, true) - res[7] = "CreatedAt: " + reform.Inspect(s.CreatedAt, true) - res[8] = "UpdatedAt: " + reform.Inspect(s.UpdatedAt, true) - res[9] = "Disabled: " + reform.Inspect(s.Disabled, true) - res[10] = "Status: " + reform.Inspect(s.Status, true) - res[11] = "ListenPort: " + reform.Inspect(s.ListenPort, true) - res[12] = "Version: " + reform.Inspect(s.Version, true) - res[13] = "ProcessExecPath: " + reform.Inspect(s.ProcessExecPath, true) - res[14] = "Username: " + reform.Inspect(s.Username, true) - res[15] = "Password: " + reform.Inspect(s.Password, true) - res[16] = "AgentPassword: " + reform.Inspect(s.AgentPassword, true) - res[17] = "TLS: " + reform.Inspect(s.TLS, true) - res[18] = "TLSSkipVerify: " + reform.Inspect(s.TLSSkipVerify, true) - res[19] = "LogLevel: " + reform.Inspect(s.LogLevel, true) - res[20] = "ExporterOptions: " + reform.Inspect(s.ExporterOptions, true) - res[21] = "QANOptions: " + reform.Inspect(s.QANOptions, true) - res[22] = "AWSOptions: " + reform.Inspect(s.AWSOptions, true) - res[23] = "AzureOptions: " + reform.Inspect(s.AzureOptions, true) - res[24] = "MongoDBOptions: " + reform.Inspect(s.MongoDBOptions, true) - res[25] = "MySQLOptions: " + reform.Inspect(s.MySQLOptions, true) - res[26] = "PostgreSQLOptions: " + reform.Inspect(s.PostgreSQLOptions, true) - res[27] = "ValkeyOptions: " + reform.Inspect(s.ValkeyOptions, true) + res[7] = "EnvironmentVariables: " + reform.Inspect(s.EnvironmentVariables, true) + res[8] = "CreatedAt: " + reform.Inspect(s.CreatedAt, true) + res[9] = "UpdatedAt: " + reform.Inspect(s.UpdatedAt, true) + res[10] = "Disabled: " + reform.Inspect(s.Disabled, true) + res[11] = "Status: " + reform.Inspect(s.Status, true) + res[12] = "ListenPort: " + reform.Inspect(s.ListenPort, true) + res[13] = "Version: " + reform.Inspect(s.Version, true) + res[14] = "ProcessExecPath: " + reform.Inspect(s.ProcessExecPath, true) + res[15] = "Username: " + reform.Inspect(s.Username, true) + res[16] = "Password: " + reform.Inspect(s.Password, true) + res[17] = "AgentPassword: " + reform.Inspect(s.AgentPassword, true) + res[18] = "TLS: " + reform.Inspect(s.TLS, true) + res[19] = "TLSSkipVerify: " + reform.Inspect(s.TLSSkipVerify, true) + res[20] = "LogLevel: " + reform.Inspect(s.LogLevel, true) + res[21] = "ExporterOptions: " + reform.Inspect(s.ExporterOptions, true) + res[22] = "QANOptions: " + reform.Inspect(s.QANOptions, true) + res[23] = "AWSOptions: " + reform.Inspect(s.AWSOptions, true) + res[24] = "AzureOptions: " + reform.Inspect(s.AzureOptions, true) + res[25] = "MongoDBOptions: " + reform.Inspect(s.MongoDBOptions, true) + res[26] = "MySQLOptions: " + reform.Inspect(s.MySQLOptions, true) + res[27] = "PostgreSQLOptions: " + reform.Inspect(s.PostgreSQLOptions, true) + res[28] = "ValkeyOptions: " + reform.Inspect(s.ValkeyOptions, true) return strings.Join(res, ", ") } @@ -159,6 +162,7 @@ func (s *Agent) Values() []interface{} { s.NodeID, s.PMMAgentID, s.CustomLabels, + s.EnvironmentVariables, s.CreatedAt, s.UpdatedAt, s.Disabled, @@ -194,6 +198,7 @@ func (s *Agent) Pointers() []interface{} { &s.NodeID, &s.PMMAgentID, &s.CustomLabels, + &s.EnvironmentVariables, &s.CreatedAt, &s.UpdatedAt, &s.Disabled, diff --git a/managed/models/database.go b/managed/models/database.go index 85431e42682..d3fd85aaa14 100644 --- a/managed/models/database.go +++ b/managed/models/database.go @@ -1148,6 +1148,9 @@ var databaseSchema = [][]string{ 112: { `UPDATE agents SET disabled = true WHERE agent_type = 'qan-postgresql-pgstatmonitor-agent' AND pmm_agent_id = 'pmm-server'`, }, + 113: { + `ALTER TABLE agents ADD COLUMN environment_variables TEXT`, + }, } // ^^^ Avoid default values in schema definition. ^^^ diff --git a/managed/services/agents/mongodb.go b/managed/services/agents/mongodb.go index 22a71f02d6d..189e8396199 100644 --- a/managed/services/agents/mongodb.go +++ b/managed/services/agents/mongodb.go @@ -57,9 +57,10 @@ func mongodbExporterConfig(node *models.Node, service *models.Service, exporter sort.Strings(args) database := exporter.MongoDBOptions.AuthenticationDatabase - env := make([]string, 0, 1+len(exporter.MongoDBOptions.AgentEnvironmentVariables)) + envVars, _ := exporter.GetEnvironmentVariables() + env := make([]string, 0, 1+len(envVars)) env = append(env, fmt.Sprintf("MONGODB_URI=%s", exporter.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: database}, tdp, pmmAgentVersion))) - for k, v := range exporter.MongoDBOptions.AgentEnvironmentVariables { + for k, v := range envVars { env = append(env, fmt.Sprintf("%s=%s", k, v)) } @@ -161,13 +162,14 @@ func buildBaseArgs(listenAddress string, tdp *models.DelimiterPair) []string { // qanMongoDBProfilerAgentConfig returns desired configuration of qan-mongodb-profiler-agent built-in agent. func qanMongoDBProfilerAgentConfig(service *models.Service, agent *models.Agent, pmmAgentVersion *version.Parsed) *agentv1.SetStateRequest_BuiltinAgent { tdp := agent.TemplateDelimiters(service) + envVars, _ := agent.GetEnvironmentVariables() return &agentv1.SetStateRequest_BuiltinAgent{ Type: inventoryv1.AgentType_AGENT_TYPE_QAN_MONGODB_PROFILER_AGENT, Dsn: agent.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: ""}, nil, pmmAgentVersion), DisableQueryExamples: agent.QANOptions.QueryExamplesDisabled, MaxQueryLength: agent.QANOptions.MaxQueryLength, - Env: agent.MongoDBOptions.AgentEnvironmentVariables, + Env: envVars, TextFiles: &agentv1.TextFiles{ Files: agent.Files(), TemplateLeftDelim: tdp.Left, @@ -179,13 +181,14 @@ func qanMongoDBProfilerAgentConfig(service *models.Service, agent *models.Agent, // qanMongoDBMongologAgentConfig returns desired configuration of qan-mongodb-mongolog-agent built-in agent. func qanMongoDBMongologAgentConfig(service *models.Service, agent *models.Agent, pmmAgentVersion *version.Parsed) *agentv1.SetStateRequest_BuiltinAgent { tdp := agent.TemplateDelimiters(service) + envVars, _ := agent.GetEnvironmentVariables() return &agentv1.SetStateRequest_BuiltinAgent{ Type: inventoryv1.AgentType_AGENT_TYPE_QAN_MONGODB_MONGOLOG_AGENT, Dsn: agent.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: ""}, nil, pmmAgentVersion), DisableQueryExamples: agent.QANOptions.QueryExamplesDisabled, MaxQueryLength: agent.QANOptions.MaxQueryLength, - Env: agent.MongoDBOptions.AgentEnvironmentVariables, + Env: envVars, TextFiles: &agentv1.TextFiles{ Files: agent.Files(), TemplateLeftDelim: tdp.Left, diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index f92330aa28a..97ff3400d86 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -362,15 +362,16 @@ func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1. var agent *inventoryv1.MongoDBExporter e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ - PMMAgentID: p.PmmAgentId, - ServiceID: p.ServiceId, - Username: p.Username, - Password: p.Password, - AgentPassword: p.AgentPassword, - CustomLabels: p.CustomLabels, - TLS: p.Tls, - TLSSkipVerify: p.TlsSkipVerify, - MongoDBOptions: models.MongoDBOptionsFromRequest(p), + PMMAgentID: p.PmmAgentId, + ServiceID: p.ServiceId, + Username: p.Username, + Password: p.Password, + AgentPassword: p.AgentPassword, + CustomLabels: p.CustomLabels, + EnvironmentVariables: p.GetAgentEnvironmentVariables(), + TLS: p.Tls, + TLSSkipVerify: p.TlsSkipVerify, + MongoDBOptions: models.MongoDBOptionsFromRequest(p), ExporterOptions: models.ExporterOptions{ PushMetrics: p.PushMetrics, DisabledCollectors: p.DisableCollectors, @@ -793,13 +794,14 @@ func (as *AgentsService) AddQANMongoDBProfilerAgent(ctx context.Context, p *inve e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ - PMMAgentID: p.PmmAgentId, - ServiceID: p.ServiceId, - Username: p.Username, - Password: p.Password, - CustomLabels: p.CustomLabels, - TLS: p.Tls, - TLSSkipVerify: p.TlsSkipVerify, + PMMAgentID: p.PmmAgentId, + ServiceID: p.ServiceId, + Username: p.Username, + Password: p.Password, + CustomLabels: p.CustomLabels, + EnvironmentVariables: p.GetAgentEnvironmentVariables(), + TLS: p.Tls, + TLSSkipVerify: p.TlsSkipVerify, QANOptions: models.QANOptions{ MaxQueryLength: p.MaxQueryLength, // TODO QueryExamplesDisabled https://jira.percona.com/browse/PMM-4650 - done, but not included in params. @@ -875,13 +877,14 @@ func (as *AgentsService) AddQANMongoDBMongologAgent(ctx context.Context, p *inve e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ - PMMAgentID: p.PmmAgentId, - ServiceID: p.ServiceId, - Username: p.Username, - Password: p.Password, - CustomLabels: p.CustomLabels, - TLS: p.Tls, - TLSSkipVerify: p.TlsSkipVerify, + PMMAgentID: p.PmmAgentId, + ServiceID: p.ServiceId, + Username: p.Username, + Password: p.Password, + CustomLabels: p.CustomLabels, + EnvironmentVariables: p.GetAgentEnvironmentVariables(), + TLS: p.Tls, + TLSSkipVerify: p.TlsSkipVerify, QANOptions: models.QANOptions{ MaxQueryLength: p.MaxQueryLength, // TODO QueryExamplesDisabled https://jira.percona.com/browse/PMM-4650 - done, but not included in params. diff --git a/managed/services/management/mongodb.go b/managed/services/management/mongodb.go index 04064ebb40b..e94a59dba40 100644 --- a/managed/services/management/mongodb.go +++ b/managed/services/management/mongodb.go @@ -63,15 +63,16 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad } row, err := models.CreateAgent(tx.Querier, models.MongoDBExporterType, &models.CreateAgentParams{ - PMMAgentID: req.PmmAgentId, - ServiceID: service.ServiceID, - Username: req.Username, - Password: req.Password, - AgentPassword: req.AgentPassword, - TLS: req.Tls, - TLSSkipVerify: req.TlsSkipVerify, - MongoDBOptions: models.MongoDBOptionsFromRequest(req), - LogLevel: services.SpecifyLogLevel(req.LogLevel, inventoryv1.LogLevel_LOG_LEVEL_FATAL), + PMMAgentID: req.PmmAgentId, + ServiceID: service.ServiceID, + Username: req.Username, + Password: req.Password, + AgentPassword: req.AgentPassword, + EnvironmentVariables: req.AgentEnvironmentVariables, + TLS: req.Tls, + TLSSkipVerify: req.TlsSkipVerify, + MongoDBOptions: models.MongoDBOptionsFromRequest(req), + LogLevel: services.SpecifyLogLevel(req.LogLevel, inventoryv1.LogLevel_LOG_LEVEL_FATAL), ExporterOptions: models.ExporterOptions{ ExposeExporter: req.ExposeExporter, PushMetrics: isPushMode(req.MetricsMode), @@ -100,12 +101,13 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad if req.QanMongodbProfiler { row, err = models.CreateAgent(tx.Querier, models.QANMongoDBProfilerAgentType, &models.CreateAgentParams{ - PMMAgentID: req.PmmAgentId, - ServiceID: service.ServiceID, - Username: req.Username, - Password: req.Password, - TLS: req.Tls, - TLSSkipVerify: req.TlsSkipVerify, + PMMAgentID: req.PmmAgentId, + ServiceID: service.ServiceID, + Username: req.Username, + Password: req.Password, + EnvironmentVariables: req.AgentEnvironmentVariables, + TLS: req.Tls, + TLSSkipVerify: req.TlsSkipVerify, QANOptions: models.QANOptions{ MaxQueryLength: req.MaxQueryLength, // TODO QueryExamplesDisabled https://jira.percona.com/browse/PMM-7860 @@ -126,12 +128,13 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad if req.QanMongodbMongolog { row, err = models.CreateAgent(tx.Querier, models.QANMongoDBMongologAgentType, &models.CreateAgentParams{ - PMMAgentID: req.PmmAgentId, - ServiceID: service.ServiceID, - Username: req.Username, - Password: req.Password, - TLS: req.Tls, - TLSSkipVerify: req.TlsSkipVerify, + PMMAgentID: req.PmmAgentId, + ServiceID: service.ServiceID, + Username: req.Username, + Password: req.Password, + EnvironmentVariables: req.AgentEnvironmentVariables, + TLS: req.Tls, + TLSSkipVerify: req.TlsSkipVerify, QANOptions: models.QANOptions{ MaxQueryLength: req.MaxQueryLength, // TODO QueryExamplesDisabled https://jira.percona.com/browse/PMM-7860 From a2d1a892d9591ca9ad419b80852ca958d8a3be36 Mon Sep 17 00:00:00 2001 From: Michael Okoko Date: Thu, 30 Oct 2025 12:10:42 +0100 Subject: [PATCH 3/9] encrypt environment variables --- api-tests/management/mongodb_test.go | 4 ++-- managed/models/encryption_helpers.go | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/api-tests/management/mongodb_test.go b/api-tests/management/mongodb_test.go index 8d9edb84fe3..3868543d16d 100644 --- a/api-tests/management/mongodb_test.go +++ b/api-tests/management/mongodb_test.go @@ -597,9 +597,9 @@ func TestAddMongoDB(t *testing.T) { }, }, } - addProxySQLOK, err := client.Default.ManagementService.AddService(params) + addMongoDBOK, err := client.Default.ManagementService.AddService(params) pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "Socket and address cannot be specified together.") - assert.Nil(t, addProxySQLOK) + assert.Nil(t, addMongoDBOK) }) t.Run("Socket", func(t *testing.T) { diff --git a/managed/models/encryption_helpers.go b/managed/models/encryption_helpers.go index 275385d290e..8509067cbf4 100644 --- a/managed/models/encryption_helpers.go +++ b/managed/models/encryption_helpers.go @@ -59,6 +59,14 @@ func agentEncryption(agent Agent, handler func(string) (string, error)) Agent { agent.AgentPassword = &agentPassword } + if agent.EnvironmentVariables != nil { + variables, err := handler(string(agent.EnvironmentVariables)) + if err != nil { + logrus.Warning(err) + } + agent.EnvironmentVariables = []byte(variables) + } + var err error if !agent.AWSOptions.IsEmpty() { agent.AWSOptions.AWSAccessKey, err = handler(agent.AWSOptions.AWSAccessKey) From 729dc2b76ae960fa0b33f636bcbc9d301391f70c Mon Sep 17 00:00:00 2001 From: Michael Okoko Date: Tue, 11 Nov 2025 10:10:23 +0100 Subject: [PATCH 4/9] drop env from qan agents --- agent/agents/mongodb/mongolog/mongodb.go | 1 - agent/agents/mongodb/profiler/mongodb.go | 1 - agent/agents/supervisor/supervisor.go | 2 - api/inventory/v1/agents.pb.go | 290 ++++++++---------- api/inventory/v1/agents.pb.validate.go | 4 - api/inventory/v1/agents.proto | 4 - .../agents_service/add_agent_responses.go | 6 - api/inventory/v1/json/v1.json | 16 - api/swagger/swagger-dev.json | 16 - api/swagger/swagger.json | 16 - managed/models/agent_model.go | 4 +- managed/models/models.go | 31 ++ managed/services/agents/mongodb.go | 9 +- managed/services/inventory/agents.go | 30 +- 14 files changed, 181 insertions(+), 249 deletions(-) diff --git a/agent/agents/mongodb/mongolog/mongodb.go b/agent/agents/mongodb/mongolog/mongodb.go index 2e682836d39..81863a51425 100644 --- a/agent/agents/mongodb/mongolog/mongodb.go +++ b/agent/agents/mongodb/mongolog/mongodb.go @@ -45,7 +45,6 @@ type Params struct { AgentID string LogFilePrefix string // for development and testing MaxQueryLength int32 - Env map[string]string } // New creates new MongoDB QAN service. diff --git a/agent/agents/mongodb/profiler/mongodb.go b/agent/agents/mongodb/profiler/mongodb.go index 3a73f82e28a..ead0a5e397b 100644 --- a/agent/agents/mongodb/profiler/mongodb.go +++ b/agent/agents/mongodb/profiler/mongodb.go @@ -43,7 +43,6 @@ type Params struct { DSN string AgentID string MaxQueryLength int32 - Env map[string]string } // New creates new MongoDB QAN service. diff --git a/agent/agents/supervisor/supervisor.go b/agent/agents/supervisor/supervisor.go index f11bb312300..3239a2c736b 100644 --- a/agent/agents/supervisor/supervisor.go +++ b/agent/agents/supervisor/supervisor.go @@ -586,7 +586,6 @@ func (s *Supervisor) startBuiltin(agentID string, builtinAgent *agentv1.SetState DSN: dsn, AgentID: agentID, MaxQueryLength: builtinAgent.MaxQueryLength, - Env: builtinAgent.Env, } agent, err = mongoprofiler.New(params, l) @@ -595,7 +594,6 @@ func (s *Supervisor) startBuiltin(agentID string, builtinAgent *agentv1.SetState DSN: dsn, AgentID: agentID, MaxQueryLength: builtinAgent.MaxQueryLength, - Env: builtinAgent.Env, } agent, err = mongolog.New(params, l) diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 7d1c4b2e610..9f6b6b60b5d 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -6906,11 +6906,9 @@ type AddQANMongoDBProfilerAgentParams struct { // Authentication database. AuthenticationDatabase string `protobuf:"bytes,14,opt,name=authentication_database,json=authenticationDatabase,proto3" json:"authentication_database,omitempty"` // Log level for agent. - LogLevel LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` - // Environment variables to set for the agent process. - AgentEnvironmentVariables map[string]string `protobuf:"bytes,16,rep,name=agent_environment_variables,json=agentEnvironmentVariables,proto3" json:"agent_environment_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + LogLevel LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AddQANMongoDBProfilerAgentParams) Reset() { @@ -7048,13 +7046,6 @@ func (x *AddQANMongoDBProfilerAgentParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } -func (x *AddQANMongoDBProfilerAgentParams) GetAgentEnvironmentVariables() map[string]string { - if x != nil { - return x.AgentEnvironmentVariables - } - return nil -} - type ChangeQANMongoDBProfilerAgentParams struct { state protoimpl.MessageState `protogen:"open.v1"` // Enable this Agent. Agents are enabled by default when they get added. @@ -7160,11 +7151,9 @@ type AddQANMongoDBMongologAgentParams struct { // Authentication database. AuthenticationDatabase string `protobuf:"bytes,14,opt,name=authentication_database,json=authenticationDatabase,proto3" json:"authentication_database,omitempty"` // Log level for agent. - LogLevel LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` - // Environment variables to set for the agent process. - AgentEnvironmentVariables map[string]string `protobuf:"bytes,16,rep,name=agent_environment_variables,json=agentEnvironmentVariables,proto3" json:"agent_environment_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + LogLevel LogLevel `protobuf:"varint,15,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AddQANMongoDBMongologAgentParams) Reset() { @@ -7302,13 +7291,6 @@ func (x *AddQANMongoDBMongologAgentParams) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } -func (x *AddQANMongoDBMongologAgentParams) GetAgentEnvironmentVariables() map[string]string { - if x != nil { - return x.AgentEnvironmentVariables - } - return nil -} - type ChangeQANMongoDBMongologAgentParams struct { state protoimpl.MessageState `protogen:"open.v1"` // Enable this Agent. Agents are enabled by default when they get added. @@ -9609,7 +9591,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x13metrics_resolutions\x18\x04 \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutionsB\t\n" + "\a_enableB\x10\n" + "\x0e_custom_labelsB\x16\n" + - "\x14_enable_push_metrics\"\x85\b\n" + + "\x14_enable_push_metrics\"\xa7\x06\n" + " AddQANMongoDBProfilerAgentParams\x12)\n" + "\fpmm_agent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" + "pmmAgentId\x12&\n" + @@ -9628,13 +9610,9 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x15skip_connection_check\x18\f \x01(\bR\x13skipConnectionCheck\x129\n" + "\x18authentication_mechanism\x18\r \x01(\tR\x17authenticationMechanism\x127\n" + "\x17authentication_database\x18\x0e \x01(\tR\x16authenticationDatabase\x123\n" + - "\tlog_level\x18\x0f \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12\x8d\x01\n" + - "\x1bagent_environment_variables\x18\x10 \x03(\v2M.inventory.v1.AddQANMongoDBProfilerAgentParams.AgentEnvironmentVariablesEntryR\x19agentEnvironmentVariables\x1a?\n" + + "\tlog_level\x18\x0f \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aL\n" + - "\x1eAgentEnvironmentVariablesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xb6\x02\n" + "#ChangeQANMongoDBProfilerAgentParams\x12\x1b\n" + "\x06enable\x18\x01 \x01(\bH\x00R\x06enable\x88\x01\x01\x12;\n" + @@ -9643,7 +9621,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x13metrics_resolutions\x18\x04 \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutionsB\t\n" + "\a_enableB\x10\n" + "\x0e_custom_labelsB\x16\n" + - "\x14_enable_push_metrics\"\x85\b\n" + + "\x14_enable_push_metrics\"\xa7\x06\n" + " AddQANMongoDBMongologAgentParams\x12)\n" + "\fpmm_agent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" + "pmmAgentId\x12&\n" + @@ -9662,13 +9640,9 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x15skip_connection_check\x18\f \x01(\bR\x13skipConnectionCheck\x129\n" + "\x18authentication_mechanism\x18\r \x01(\tR\x17authenticationMechanism\x127\n" + "\x17authentication_database\x18\x0e \x01(\tR\x16authenticationDatabase\x123\n" + - "\tlog_level\x18\x0f \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12\x8d\x01\n" + - "\x1bagent_environment_variables\x18\x10 \x03(\v2M.inventory.v1.AddQANMongoDBMongologAgentParams.AgentEnvironmentVariablesEntryR\x19agentEnvironmentVariables\x1a?\n" + + "\tlog_level\x18\x0f \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aL\n" + - "\x1eAgentEnvironmentVariablesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xb6\x02\n" + "#ChangeQANMongoDBMongologAgentParams\x12\x1b\n" + "\x06enable\x18\x01 \x01(\bH\x00R\x06enable\x88\x01\x01\x12;\n" + @@ -9894,7 +9868,7 @@ func file_inventory_v1_agents_proto_rawDescGZIP() []byte { var ( file_inventory_v1_agents_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 104) + file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 102) file_inventory_v1_agents_proto_goTypes = []any{ (AgentType)(0), // 0: inventory.v1.AgentType (*PMMAgent)(nil), // 1: inventory.v1.PMMAgent @@ -9992,82 +9966,80 @@ var ( nil, // 93: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry nil, // 94: inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry nil, // 95: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - nil, // 96: inventory.v1.AddQANMongoDBProfilerAgentParams.AgentEnvironmentVariablesEntry - nil, // 97: inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry - nil, // 98: inventory.v1.AddQANMongoDBMongologAgentParams.AgentEnvironmentVariablesEntry - nil, // 99: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - nil, // 100: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - nil, // 101: inventory.v1.AddRDSExporterParams.CustomLabelsEntry - nil, // 102: inventory.v1.AddExternalExporterParams.CustomLabelsEntry - nil, // 103: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - nil, // 104: inventory.v1.AddValkeyExporterParams.CustomLabelsEntry - (AgentStatus)(0), // 105: inventory.v1.AgentStatus - (LogLevel)(0), // 106: inventory.v1.LogLevel - (*common.MetricsResolutions)(nil), // 107: common.MetricsResolutions - (*common.StringMap)(nil), // 108: common.StringMap + nil, // 96: inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry + nil, // 97: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + nil, // 98: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + nil, // 99: inventory.v1.AddRDSExporterParams.CustomLabelsEntry + nil, // 100: inventory.v1.AddExternalExporterParams.CustomLabelsEntry + nil, // 101: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + nil, // 102: inventory.v1.AddValkeyExporterParams.CustomLabelsEntry + (AgentStatus)(0), // 103: inventory.v1.AgentStatus + (LogLevel)(0), // 104: inventory.v1.LogLevel + (*common.MetricsResolutions)(nil), // 105: common.MetricsResolutions + (*common.StringMap)(nil), // 106: common.StringMap } ) var file_inventory_v1_agents_proto_depIdxs = []int32{ 64, // 0: inventory.v1.PMMAgent.custom_labels:type_name -> inventory.v1.PMMAgent.CustomLabelsEntry - 105, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus - 105, // 2: inventory.v1.NomadAgent.status:type_name -> inventory.v1.AgentStatus + 103, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus + 103, // 2: inventory.v1.NomadAgent.status:type_name -> inventory.v1.AgentStatus 65, // 3: inventory.v1.NodeExporter.custom_labels:type_name -> inventory.v1.NodeExporter.CustomLabelsEntry - 105, // 4: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus - 106, // 5: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel - 107, // 6: inventory.v1.NodeExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 103, // 4: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus + 104, // 5: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel + 105, // 6: inventory.v1.NodeExporter.metrics_resolutions:type_name -> common.MetricsResolutions 66, // 7: inventory.v1.MySQLdExporter.custom_labels:type_name -> inventory.v1.MySQLdExporter.CustomLabelsEntry - 105, // 8: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus - 106, // 9: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel - 107, // 10: inventory.v1.MySQLdExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 103, // 8: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus + 104, // 9: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel + 105, // 10: inventory.v1.MySQLdExporter.metrics_resolutions:type_name -> common.MetricsResolutions 67, // 11: inventory.v1.MySQLdExporter.extra_dsn_params:type_name -> inventory.v1.MySQLdExporter.ExtraDsnParamsEntry 68, // 12: inventory.v1.MongoDBExporter.custom_labels:type_name -> inventory.v1.MongoDBExporter.CustomLabelsEntry - 105, // 13: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus - 106, // 14: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel - 107, // 15: inventory.v1.MongoDBExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 103, // 13: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus + 104, // 14: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel + 105, // 15: inventory.v1.MongoDBExporter.metrics_resolutions:type_name -> common.MetricsResolutions 69, // 16: inventory.v1.PostgresExporter.custom_labels:type_name -> inventory.v1.PostgresExporter.CustomLabelsEntry - 105, // 17: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus - 106, // 18: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel - 107, // 19: inventory.v1.PostgresExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 103, // 17: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus + 104, // 18: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel + 105, // 19: inventory.v1.PostgresExporter.metrics_resolutions:type_name -> common.MetricsResolutions 70, // 20: inventory.v1.ProxySQLExporter.custom_labels:type_name -> inventory.v1.ProxySQLExporter.CustomLabelsEntry - 105, // 21: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus - 106, // 22: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel - 107, // 23: inventory.v1.ProxySQLExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 103, // 21: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus + 104, // 22: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel + 105, // 23: inventory.v1.ProxySQLExporter.metrics_resolutions:type_name -> common.MetricsResolutions 71, // 24: inventory.v1.ValkeyExporter.custom_labels:type_name -> inventory.v1.ValkeyExporter.CustomLabelsEntry - 105, // 25: inventory.v1.ValkeyExporter.status:type_name -> inventory.v1.AgentStatus - 107, // 26: inventory.v1.ValkeyExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 103, // 25: inventory.v1.ValkeyExporter.status:type_name -> inventory.v1.AgentStatus + 105, // 26: inventory.v1.ValkeyExporter.metrics_resolutions:type_name -> common.MetricsResolutions 72, // 27: inventory.v1.QANMySQLPerfSchemaAgent.custom_labels:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry - 105, // 28: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus - 106, // 29: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel + 103, // 28: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus + 104, // 29: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel 73, // 30: inventory.v1.QANMySQLPerfSchemaAgent.extra_dsn_params:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.ExtraDsnParamsEntry 74, // 31: inventory.v1.QANMySQLSlowlogAgent.custom_labels:type_name -> inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry - 105, // 32: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus - 106, // 33: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel + 103, // 32: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus + 104, // 33: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel 75, // 34: inventory.v1.QANMySQLSlowlogAgent.extra_dsn_params:type_name -> inventory.v1.QANMySQLSlowlogAgent.ExtraDsnParamsEntry 76, // 35: inventory.v1.QANMongoDBProfilerAgent.custom_labels:type_name -> inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry - 105, // 36: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus - 106, // 37: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel + 103, // 36: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus + 104, // 37: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel 77, // 38: inventory.v1.QANMongoDBMongologAgent.custom_labels:type_name -> inventory.v1.QANMongoDBMongologAgent.CustomLabelsEntry - 105, // 39: inventory.v1.QANMongoDBMongologAgent.status:type_name -> inventory.v1.AgentStatus - 106, // 40: inventory.v1.QANMongoDBMongologAgent.log_level:type_name -> inventory.v1.LogLevel + 103, // 39: inventory.v1.QANMongoDBMongologAgent.status:type_name -> inventory.v1.AgentStatus + 104, // 40: inventory.v1.QANMongoDBMongologAgent.log_level:type_name -> inventory.v1.LogLevel 78, // 41: inventory.v1.QANPostgreSQLPgStatementsAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry - 105, // 42: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus - 106, // 43: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel + 103, // 42: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus + 104, // 43: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel 79, // 44: inventory.v1.QANPostgreSQLPgStatMonitorAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry - 105, // 45: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus - 106, // 46: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel + 103, // 45: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus + 104, // 46: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel 80, // 47: inventory.v1.RDSExporter.custom_labels:type_name -> inventory.v1.RDSExporter.CustomLabelsEntry - 105, // 48: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus - 106, // 49: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel - 107, // 50: inventory.v1.RDSExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 103, // 48: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus + 104, // 49: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel + 105, // 50: inventory.v1.RDSExporter.metrics_resolutions:type_name -> common.MetricsResolutions 81, // 51: inventory.v1.ExternalExporter.custom_labels:type_name -> inventory.v1.ExternalExporter.CustomLabelsEntry - 107, // 52: inventory.v1.ExternalExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 52: inventory.v1.ExternalExporter.metrics_resolutions:type_name -> common.MetricsResolutions 82, // 53: inventory.v1.AzureDatabaseExporter.custom_labels:type_name -> inventory.v1.AzureDatabaseExporter.CustomLabelsEntry - 105, // 54: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus - 106, // 55: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel - 107, // 56: inventory.v1.AzureDatabaseExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 108, // 57: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap - 107, // 58: inventory.v1.ChangeCommonAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 103, // 54: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus + 104, // 55: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel + 105, // 56: inventory.v1.AzureDatabaseExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 106, // 57: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap + 105, // 58: inventory.v1.ChangeCommonAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions 0, // 59: inventory.v1.ListAgentsRequest.agent_type:type_name -> inventory.v1.AgentType 1, // 60: inventory.v1.ListAgentsResponse.pmm_agent:type_name -> inventory.v1.PMMAgent 2, // 61: inventory.v1.ListAgentsResponse.vm_agent:type_name -> inventory.v1.VMAgent @@ -10171,86 +10143,84 @@ var file_inventory_v1_agents_proto_depIdxs = []int32{ 9, // 159: inventory.v1.ChangeAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter 83, // 160: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry 84, // 161: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry - 106, // 162: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel - 108, // 163: inventory.v1.ChangeNodeExporterParams.custom_labels:type_name -> common.StringMap - 107, // 164: inventory.v1.ChangeNodeExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 104, // 162: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 163: inventory.v1.ChangeNodeExporterParams.custom_labels:type_name -> common.StringMap + 105, // 164: inventory.v1.ChangeNodeExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions 85, // 165: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry - 106, // 166: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel + 104, // 166: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel 86, // 167: inventory.v1.AddMySQLdExporterParams.extra_dsn_params:type_name -> inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry - 108, // 168: inventory.v1.ChangeMySQLdExporterParams.custom_labels:type_name -> common.StringMap - 107, // 169: inventory.v1.ChangeMySQLdExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 106, // 168: inventory.v1.ChangeMySQLdExporterParams.custom_labels:type_name -> common.StringMap + 105, // 169: inventory.v1.ChangeMySQLdExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions 87, // 170: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - 106, // 171: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel + 104, // 171: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel 88, // 172: inventory.v1.AddMongoDBExporterParams.agent_environment_variables:type_name -> inventory.v1.AddMongoDBExporterParams.AgentEnvironmentVariablesEntry - 108, // 173: inventory.v1.ChangeMongoDBExporterParams.custom_labels:type_name -> common.StringMap - 107, // 174: inventory.v1.ChangeMongoDBExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 106, // 173: inventory.v1.ChangeMongoDBExporterParams.custom_labels:type_name -> common.StringMap + 105, // 174: inventory.v1.ChangeMongoDBExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions 89, // 175: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - 106, // 176: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel - 108, // 177: inventory.v1.ChangePostgresExporterParams.custom_labels:type_name -> common.StringMap - 107, // 178: inventory.v1.ChangePostgresExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 104, // 176: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 177: inventory.v1.ChangePostgresExporterParams.custom_labels:type_name -> common.StringMap + 105, // 178: inventory.v1.ChangePostgresExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions 90, // 179: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - 106, // 180: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel - 108, // 181: inventory.v1.ChangeProxySQLExporterParams.custom_labels:type_name -> common.StringMap - 107, // 182: inventory.v1.ChangeProxySQLExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 104, // 180: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 181: inventory.v1.ChangeProxySQLExporterParams.custom_labels:type_name -> common.StringMap + 105, // 182: inventory.v1.ChangeProxySQLExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions 91, // 183: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - 106, // 184: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel + 104, // 184: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel 92, // 185: inventory.v1.AddQANMySQLPerfSchemaAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry - 108, // 186: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> common.StringMap - 107, // 187: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 106, // 186: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> common.StringMap + 105, // 187: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions 93, // 188: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - 106, // 189: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel + 104, // 189: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel 94, // 190: inventory.v1.AddQANMySQLSlowlogAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry - 108, // 191: inventory.v1.ChangeQANMySQLSlowlogAgentParams.custom_labels:type_name -> common.StringMap - 107, // 192: inventory.v1.ChangeQANMySQLSlowlogAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 106, // 191: inventory.v1.ChangeQANMySQLSlowlogAgentParams.custom_labels:type_name -> common.StringMap + 105, // 192: inventory.v1.ChangeQANMySQLSlowlogAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions 95, // 193: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - 106, // 194: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel - 96, // 195: inventory.v1.AddQANMongoDBProfilerAgentParams.agent_environment_variables:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.AgentEnvironmentVariablesEntry - 108, // 196: inventory.v1.ChangeQANMongoDBProfilerAgentParams.custom_labels:type_name -> common.StringMap - 107, // 197: inventory.v1.ChangeQANMongoDBProfilerAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 97, // 198: inventory.v1.AddQANMongoDBMongologAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry - 106, // 199: inventory.v1.AddQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel - 98, // 200: inventory.v1.AddQANMongoDBMongologAgentParams.agent_environment_variables:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.AgentEnvironmentVariablesEntry - 108, // 201: inventory.v1.ChangeQANMongoDBMongologAgentParams.custom_labels:type_name -> common.StringMap - 107, // 202: inventory.v1.ChangeQANMongoDBMongologAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 99, // 203: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - 106, // 204: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel - 108, // 205: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> common.StringMap - 107, // 206: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 100, // 207: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - 106, // 208: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel - 108, // 209: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> common.StringMap - 107, // 210: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 101, // 211: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry - 106, // 212: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel - 108, // 213: inventory.v1.ChangeRDSExporterParams.custom_labels:type_name -> common.StringMap - 107, // 214: inventory.v1.ChangeRDSExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 102, // 215: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry - 108, // 216: inventory.v1.ChangeExternalExporterParams.custom_labels:type_name -> common.StringMap - 107, // 217: inventory.v1.ChangeExternalExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 103, // 218: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - 106, // 219: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel - 108, // 220: inventory.v1.ChangeAzureDatabaseExporterParams.custom_labels:type_name -> common.StringMap - 107, // 221: inventory.v1.ChangeAzureDatabaseExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 104, // 222: inventory.v1.AddValkeyExporterParams.custom_labels:type_name -> inventory.v1.AddValkeyExporterParams.CustomLabelsEntry - 108, // 223: inventory.v1.ChangeValkeyExporterParams.custom_labels:type_name -> common.StringMap - 107, // 224: inventory.v1.ChangeValkeyExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 20, // 225: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest - 22, // 226: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest - 24, // 227: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest - 26, // 228: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest - 28, // 229: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest - 62, // 230: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest - 21, // 231: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse - 23, // 232: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse - 25, // 233: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse - 27, // 234: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse - 29, // 235: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse - 63, // 236: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse - 231, // [231:237] is the sub-list for method output_type - 225, // [225:231] is the sub-list for method input_type - 225, // [225:225] is the sub-list for extension type_name - 225, // [225:225] is the sub-list for extension extendee - 0, // [0:225] is the sub-list for field type_name + 104, // 194: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 195: inventory.v1.ChangeQANMongoDBProfilerAgentParams.custom_labels:type_name -> common.StringMap + 105, // 196: inventory.v1.ChangeQANMongoDBProfilerAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 96, // 197: inventory.v1.AddQANMongoDBMongologAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry + 104, // 198: inventory.v1.AddQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 199: inventory.v1.ChangeQANMongoDBMongologAgentParams.custom_labels:type_name -> common.StringMap + 105, // 200: inventory.v1.ChangeQANMongoDBMongologAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 97, // 201: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + 104, // 202: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 203: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> common.StringMap + 105, // 204: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 98, // 205: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + 104, // 206: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 207: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> common.StringMap + 105, // 208: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 99, // 209: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry + 104, // 210: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 211: inventory.v1.ChangeRDSExporterParams.custom_labels:type_name -> common.StringMap + 105, // 212: inventory.v1.ChangeRDSExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 100, // 213: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry + 106, // 214: inventory.v1.ChangeExternalExporterParams.custom_labels:type_name -> common.StringMap + 105, // 215: inventory.v1.ChangeExternalExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 101, // 216: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + 104, // 217: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 218: inventory.v1.ChangeAzureDatabaseExporterParams.custom_labels:type_name -> common.StringMap + 105, // 219: inventory.v1.ChangeAzureDatabaseExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 102, // 220: inventory.v1.AddValkeyExporterParams.custom_labels:type_name -> inventory.v1.AddValkeyExporterParams.CustomLabelsEntry + 106, // 221: inventory.v1.ChangeValkeyExporterParams.custom_labels:type_name -> common.StringMap + 105, // 222: inventory.v1.ChangeValkeyExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 20, // 223: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest + 22, // 224: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest + 24, // 225: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest + 26, // 226: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest + 28, // 227: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest + 62, // 228: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest + 21, // 229: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse + 23, // 230: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse + 25, // 231: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse + 27, // 232: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse + 29, // 233: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse + 63, // 234: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse + 229, // [229:235] is the sub-list for method output_type + 223, // [223:229] is the sub-list for method input_type + 223, // [223:223] is the sub-list for extension type_name + 223, // [223:223] is the sub-list for extension extendee + 0, // [0:223] is the sub-list for field type_name } func init() { file_inventory_v1_agents_proto_init() } @@ -10375,7 +10345,7 @@ func file_inventory_v1_agents_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_inventory_v1_agents_proto_rawDesc), len(file_inventory_v1_agents_proto_rawDesc)), NumEnums: 1, - NumMessages: 104, + NumMessages: 102, NumExtensions: 0, NumServices: 1, }, diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index fc98ddff469..c732b4aa225 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -10270,8 +10270,6 @@ func (m *AddQANMongoDBProfilerAgentParams) validate(all bool) error { // no validation rules for LogLevel - // no validation rules for AgentEnvironmentVariables - if len(errors) > 0 { return AddQANMongoDBProfilerAgentParamsMultiError(errors) } @@ -10598,8 +10596,6 @@ func (m *AddQANMongoDBMongologAgentParams) validate(all bool) error { // no validation rules for LogLevel - // no validation rules for AgentEnvironmentVariables - if len(errors) > 0 { return AddQANMongoDBMongologAgentParamsMultiError(errors) } diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index 0d17039f594..ca337054894 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -1273,8 +1273,6 @@ message AddQANMongoDBProfilerAgentParams { string authentication_database = 14; // Log level for agent. LogLevel log_level = 15; - // Environment variables to set for the agent process. - map agent_environment_variables = 16; } message ChangeQANMongoDBProfilerAgentParams { @@ -1323,8 +1321,6 @@ message AddQANMongoDBMongologAgentParams { string authentication_database = 14; // Log level for agent. LogLevel log_level = 15; - // Environment variables to set for the agent process. - map agent_environment_variables = 16; } message ChangeQANMongoDBMongologAgentParams { diff --git a/api/inventory/v1/json/client/agents_service/add_agent_responses.go b/api/inventory/v1/json/client/agents_service/add_agent_responses.go index 8241ee39bcd..1a77ecae7be 100644 --- a/api/inventory/v1/json/client/agents_service/add_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/add_agent_responses.go @@ -7462,9 +7462,6 @@ type AddAgentParamsBodyQANMongodbMongologAgent struct { // - LOG_LEVEL_UNSPECIFIED: Auto // Enum: ["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"] LogLevel *string `json:"log_level,omitempty"` - - // Environment variables to set for the agent process. - AgentEnvironmentVariables map[string]string `json:"agent_environment_variables,omitempty"` } // Validate validates this add agent params body QAN mongodb mongolog agent @@ -7612,9 +7609,6 @@ type AddAgentParamsBodyQANMongodbProfilerAgent struct { // - LOG_LEVEL_UNSPECIFIED: Auto // Enum: ["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"] LogLevel *string `json:"log_level,omitempty"` - - // Environment variables to set for the agent process. - AgentEnvironmentVariables map[string]string `json:"agent_environment_variables,omitempty"` } // Validate validates this add agent params body QAN mongodb profiler agent diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index 838b7be56d6..930d22706cc 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -3141,14 +3141,6 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 - }, - "agent_environment_variables": { - "description": "Environment variables to set for the agent process.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 15 } }, "x-order": 11 @@ -3244,14 +3236,6 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 - }, - "agent_environment_variables": { - "description": "Environment variables to set for the agent process.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 15 } }, "x-order": 12 diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index d21e74012dc..7febe854cc3 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -8275,14 +8275,6 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 - }, - "agent_environment_variables": { - "description": "Environment variables to set for the agent process.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 15 } }, "x-order": 11 @@ -8378,14 +8370,6 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 - }, - "agent_environment_variables": { - "description": "Environment variables to set for the agent process.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 15 } }, "x-order": 12 diff --git a/api/swagger/swagger.json b/api/swagger/swagger.json index 9c40a7f30b6..6f6547d609e 100644 --- a/api/swagger/swagger.json +++ b/api/swagger/swagger.json @@ -7317,14 +7317,6 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 - }, - "agent_environment_variables": { - "description": "Environment variables to set for the agent process.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 15 } }, "x-order": 11 @@ -7420,14 +7412,6 @@ "LOG_LEVEL_DEBUG" ], "x-order": 14 - }, - "agent_environment_variables": { - "description": "Environment variables to set for the agent process.", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-order": 15 } }, "x-order": 12 diff --git a/managed/models/agent_model.go b/managed/models/agent_model.go index 091e2043479..0633e777136 100644 --- a/managed/models/agent_model.go +++ b/managed/models/agent_model.go @@ -391,12 +391,12 @@ func (s *Agent) SetCustomLabels(m map[string]string) error { // GetEnvironmentVariables decodes environment variables. func (s *Agent) GetEnvironmentVariables() (map[string]string, error) { - return getLabels(s.EnvironmentVariables) + return getEnvironmentVariables(s.EnvironmentVariables) } // SetEnvironmentVariables encodes environment variables. func (s *Agent) SetEnvironmentVariables(m map[string]string) error { - return setLabels(m, &s.EnvironmentVariables) + return setEnvironmentVariables(m, &s.EnvironmentVariables) } // GetAgentPassword returns agent password, if it is empty then agent ID. diff --git a/managed/models/models.go b/managed/models/models.go index c92479e1b0c..caaea50234a 100644 --- a/managed/models/models.go +++ b/managed/models/models.go @@ -143,6 +143,18 @@ func getLabels(b []byte) (map[string]string, error) { return m, nil } +// getEnvironmentVariables deserializes model's environment variables. +func getEnvironmentVariables(b []byte) (map[string]string, error) { + if len(b) == 0 { + return nil, nil //nolint:nilnil + } + m := make(map[string]string) + if err := json.Unmarshal(b, &m); err != nil { + return nil, errors.Wrap(err, "failed to decode environment variables") + } + return m, nil +} + // getLabels serializes model's Prometheus labels. func setLabels(m map[string]string, res *[]byte) error { if err := prepareLabels(m, false); err != nil { @@ -162,6 +174,25 @@ func setLabels(m map[string]string, res *[]byte) error { return nil } +// setEnvironmentVariables serializes model's Prometheus labels. +func setEnvironmentVariables(m map[string]string, res *[]byte) error { + if err := prepareLabels(m, false); err != nil { + return err + } + + if len(m) == 0 { + *res = nil + return nil + } + + b, err := json.Marshal(m) + if err != nil { + return errors.Wrap(err, "failed to encode environment variables") + } + *res = b + return nil +} + // jsonValue implements database/sql/driver.Valuer interface for v that should be a value. func jsonValue(v interface{}) (driver.Value, error) { b, err := json.Marshal(v) diff --git a/managed/services/agents/mongodb.go b/managed/services/agents/mongodb.go index 189e8396199..76bb012fc3c 100644 --- a/managed/services/agents/mongodb.go +++ b/managed/services/agents/mongodb.go @@ -57,7 +57,10 @@ func mongodbExporterConfig(node *models.Node, service *models.Service, exporter sort.Strings(args) database := exporter.MongoDBOptions.AuthenticationDatabase - envVars, _ := exporter.GetEnvironmentVariables() + envVars, err := exporter.GetEnvironmentVariables() + if err != nil { + return nil, err + } env := make([]string, 0, 1+len(envVars)) env = append(env, fmt.Sprintf("MONGODB_URI=%s", exporter.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: database}, tdp, pmmAgentVersion))) for k, v := range envVars { @@ -162,14 +165,12 @@ func buildBaseArgs(listenAddress string, tdp *models.DelimiterPair) []string { // qanMongoDBProfilerAgentConfig returns desired configuration of qan-mongodb-profiler-agent built-in agent. func qanMongoDBProfilerAgentConfig(service *models.Service, agent *models.Agent, pmmAgentVersion *version.Parsed) *agentv1.SetStateRequest_BuiltinAgent { tdp := agent.TemplateDelimiters(service) - envVars, _ := agent.GetEnvironmentVariables() return &agentv1.SetStateRequest_BuiltinAgent{ Type: inventoryv1.AgentType_AGENT_TYPE_QAN_MONGODB_PROFILER_AGENT, Dsn: agent.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: ""}, nil, pmmAgentVersion), DisableQueryExamples: agent.QANOptions.QueryExamplesDisabled, MaxQueryLength: agent.QANOptions.MaxQueryLength, - Env: envVars, TextFiles: &agentv1.TextFiles{ Files: agent.Files(), TemplateLeftDelim: tdp.Left, @@ -181,14 +182,12 @@ func qanMongoDBProfilerAgentConfig(service *models.Service, agent *models.Agent, // qanMongoDBMongologAgentConfig returns desired configuration of qan-mongodb-mongolog-agent built-in agent. func qanMongoDBMongologAgentConfig(service *models.Service, agent *models.Agent, pmmAgentVersion *version.Parsed) *agentv1.SetStateRequest_BuiltinAgent { tdp := agent.TemplateDelimiters(service) - envVars, _ := agent.GetEnvironmentVariables() return &agentv1.SetStateRequest_BuiltinAgent{ Type: inventoryv1.AgentType_AGENT_TYPE_QAN_MONGODB_MONGOLOG_AGENT, Dsn: agent.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: ""}, nil, pmmAgentVersion), DisableQueryExamples: agent.QANOptions.QueryExamplesDisabled, MaxQueryLength: agent.QANOptions.MaxQueryLength, - Env: envVars, TextFiles: &agentv1.TextFiles{ Files: agent.Files(), TemplateLeftDelim: tdp.Left, diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index 5eaf8a6817a..1d4bf707ab3 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -796,14 +796,13 @@ func (as *AgentsService) AddQANMongoDBProfilerAgent(ctx context.Context, p *inve e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ - PMMAgentID: p.PmmAgentId, - ServiceID: p.ServiceId, - Username: p.Username, - Password: p.Password, - CustomLabels: p.CustomLabels, - EnvironmentVariables: p.GetAgentEnvironmentVariables(), - TLS: p.Tls, - TLSSkipVerify: p.TlsSkipVerify, + PMMAgentID: p.PmmAgentId, + ServiceID: p.ServiceId, + Username: p.Username, + Password: p.Password, + CustomLabels: p.CustomLabels, + TLS: p.Tls, + TLSSkipVerify: p.TlsSkipVerify, QANOptions: models.QANOptions{ MaxQueryLength: p.MaxQueryLength, // TODO QueryExamplesDisabled https://jira.percona.com/browse/PMM-4650 - done, but not included in params. @@ -879,14 +878,13 @@ func (as *AgentsService) AddQANMongoDBMongologAgent(ctx context.Context, p *inve e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ - PMMAgentID: p.PmmAgentId, - ServiceID: p.ServiceId, - Username: p.Username, - Password: p.Password, - CustomLabels: p.CustomLabels, - EnvironmentVariables: p.GetAgentEnvironmentVariables(), - TLS: p.Tls, - TLSSkipVerify: p.TlsSkipVerify, + PMMAgentID: p.PmmAgentId, + ServiceID: p.ServiceId, + Username: p.Username, + Password: p.Password, + CustomLabels: p.CustomLabels, + TLS: p.Tls, + TLSSkipVerify: p.TlsSkipVerify, QANOptions: models.QANOptions{ MaxQueryLength: p.MaxQueryLength, // TODO QueryExamplesDisabled https://jira.percona.com/browse/PMM-4650 - done, but not included in params. From 9c1fb3b986416645b0fb3de16783864c8ebf9e4a Mon Sep 17 00:00:00 2001 From: Michael Okoko Date: Mon, 17 Nov 2025 01:21:51 +0100 Subject: [PATCH 5/9] read variables from env --- admin/commands/base.go | 33 ++++++++++++++++++++++++ admin/commands/management/add_mongodb.go | 7 +++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/admin/commands/base.go b/admin/commands/base.go index 127656906c2..1e121cd2852 100644 --- a/admin/commands/base.go +++ b/admin/commands/base.go @@ -184,6 +184,39 @@ func ParseDisableCollectors(collectors []string) []string { return disableCollectors } +// ReadEnvironmentVariables reads environment variable values from the system environment. +// It takes a slice of variable names and returns a map of name->value pairs. +// Returns an error if any of the specified environment variables are not set. +func ReadEnvironmentVariables(varNames []string) (map[string]string, error) { + if len(varNames) == 0 { + return nil, nil + } + + result := make(map[string]string) + var missing []string + + for _, name := range varNames { + name = strings.TrimSpace(name) + if name == "" { + continue + } + + value, exists := os.LookupEnv(name) + if !exists { + missing = append(missing, name) + continue + } + + result[name] = value + } + + if len(missing) > 0 { + return nil, fmt.Errorf("environment variables not set: %s", strings.Join(missing, ", ")) + } + + return result, nil +} + // ReadFile reads file from filepath if filepath is not empty. func ReadFile(filePath string) (string, error) { if filePath == "" { diff --git a/admin/commands/management/add_mongodb.go b/admin/commands/management/add_mongodb.go index 68582a99eee..97d89f7ea15 100644 --- a/admin/commands/management/add_mongodb.go +++ b/admin/commands/management/add_mongodb.go @@ -82,7 +82,7 @@ type AddMongoDBCommand struct { StatsCollections []string `help:"Collections for collstats & indexstats"` CollectionsLimit int32 `name:"max-collections-limit" default:"-1" help:"Disable collstats, dbstats, topmetrics and indexstats if there are more than collections. 0: No limit. Default is -1, which let PMM automatically set this value"` ExposeExporter bool `name:"expose-exporter" help:"Optionally expose the address of the exporter publicly on 0.0.0.0"` - AgentEnvVars map[string]string `name:"agent-env-vars" mapsep:"," help:"Additional environment variables for the exporter, e.g. 'VAR1=value1,VAR2=value2'"` + AgentEnvVars []string `name:"agent-env-vars" help:"Comma-separated list of environment variable names to pass to the exporter (values are read from the current environment), e.g. 'VAR1,VAR2'"` AddCommonFlags flags.MetricsModeFlags @@ -126,7 +126,10 @@ func (cmd *AddMongoDBCommand) GetCredentials() error { // RunCmd runs the command for AddMongoDBCommand. func (cmd *AddMongoDBCommand) RunCmd() (commands.Result, error) { customLabels := commands.ParseKeyValuePair(cmd.CustomLabels) - agentVars := commands.ParseKeyValuePair(cmd.AgentEnvVars) + agentVars, err := commands.ReadEnvironmentVariables(cmd.AgentEnvVars) + if err != nil { + return nil, err + } tlsCertificateKey, err := commands.ReadFile(cmd.TLSCertificateKeyFile) if err != nil { From e2376ab333292bcfa391d16830169d61c504fd5f Mon Sep 17 00:00:00 2001 From: Michael Okoko Date: Mon, 17 Nov 2025 10:06:31 +0100 Subject: [PATCH 6/9] lookup env from pmm-agent --- admin/commands/base.go | 24 +- admin/commands/management/add_mongodb.go | 24 +- agent/agents/supervisor/supervisor.go | 11 + api/agent/v1/agent.pb.go | 20 +- api/agent/v1/agent.proto | 2 + api/inventory/v1/agents.pb.go | 310 +++++++++--------- api/inventory/v1/agents.pb.validate.go | 2 - api/inventory/v1/agents.proto | 7 +- .../agents_service/add_agent_responses.go | 8 +- .../agents_service/change_agent_responses.go | 3 + .../agents_service/get_agent_responses.go | 3 + .../agents_service/list_agents_responses.go | 3 + api/inventory/v1/json/v1.json | 40 ++- .../add_service_responses.go | 8 +- api/management/v1/json/v1.json | 16 +- api/management/v1/mongodb.pb.go | 68 ++-- api/management/v1/mongodb.pb.validate.go | 2 - api/management/v1/mongodb.proto | 5 +- api/swagger/swagger-dev.json | 56 +++- api/swagger/swagger.json | 56 +++- managed/models/agent_helpers.go | 42 +-- managed/models/agent_model.go | 63 ++-- managed/models/agent_model_reform.go | 10 +- managed/models/database.go | 2 +- managed/models/encryption_helpers.go | 8 - managed/models/models.go | 31 -- managed/services/agents/mongodb.go | 9 +- managed/services/inventory/agents.go | 20 +- managed/services/management/mongodb.go | 48 +-- 29 files changed, 518 insertions(+), 383 deletions(-) diff --git a/admin/commands/base.go b/admin/commands/base.go index 1e121cd2852..68591dd1e56 100644 --- a/admin/commands/base.go +++ b/admin/commands/base.go @@ -184,16 +184,16 @@ func ParseDisableCollectors(collectors []string) []string { return disableCollectors } -// ReadEnvironmentVariables reads environment variable values from the system environment. -// It takes a slice of variable names and returns a map of name->value pairs. -// Returns an error if any of the specified environment variables are not set. -func ReadEnvironmentVariables(varNames []string) (map[string]string, error) { +// ValidateEnvironmentVariableNames validates environment variable names. +// It takes a slice of variable names and returns a validated list. +// Variable names must match the pattern: [A-Z_][A-Z0-9_]* +func ValidateEnvironmentVariableNames(varNames []string) ([]string, error) { if len(varNames) == 0 { return nil, nil } - result := make(map[string]string) - var missing []string + var result []string + validNamePattern := regexp.MustCompile(`^[A-Z_][A-Z0-9_]*$`) for _, name := range varNames { name = strings.TrimSpace(name) @@ -201,17 +201,11 @@ func ReadEnvironmentVariables(varNames []string) (map[string]string, error) { continue } - value, exists := os.LookupEnv(name) - if !exists { - missing = append(missing, name) - continue + if !validNamePattern.MatchString(name) { + return nil, fmt.Errorf("invalid environment variable name: %s (must match [A-Z_][A-Z0-9_]*)", name) } - result[name] = value - } - - if len(missing) > 0 { - return nil, fmt.Errorf("environment variables not set: %s", strings.Join(missing, ", ")) + result = append(result, name) } return result, nil diff --git a/admin/commands/management/add_mongodb.go b/admin/commands/management/add_mongodb.go index 97d89f7ea15..1a31cac2774 100644 --- a/admin/commands/management/add_mongodb.go +++ b/admin/commands/management/add_mongodb.go @@ -126,7 +126,7 @@ func (cmd *AddMongoDBCommand) GetCredentials() error { // RunCmd runs the command for AddMongoDBCommand. func (cmd *AddMongoDBCommand) RunCmd() (commands.Result, error) { customLabels := commands.ParseKeyValuePair(cmd.CustomLabels) - agentVars, err := commands.ReadEnvironmentVariables(cmd.AgentEnvVars) + agentVarNames, err := commands.ValidateEnvironmentVariableNames(cmd.AgentEnvVars) if err != nil { return nil, err } @@ -184,17 +184,17 @@ func (cmd *AddMongoDBCommand) RunCmd() (commands.Result, error) { QANMongodbProfiler: cmd.QuerySource == MongodbQuerySourceProfiler, QANMongodbMongolog: cmd.QuerySource == MongodbQuerySourceMongolog, - CustomLabels: customLabels, - AgentEnvironmentVariables: agentVars, - SkipConnectionCheck: cmd.SkipConnectionCheck, - MaxQueryLength: cmd.MaxQueryLength, - TLS: cmd.TLS, - TLSSkipVerify: cmd.TLSSkipVerify, - TLSCertificateKey: tlsCertificateKey, - TLSCertificateKeyFilePassword: cmd.TLSCertificateKeyFilePassword, - TLSCa: tlsCa, - AuthenticationMechanism: cmd.AuthenticationMechanism, - AuthenticationDatabase: cmd.AuthenticationDatabase, + CustomLabels: customLabels, + SharedEnvironmentVariableNames: agentVarNames, + SkipConnectionCheck: cmd.SkipConnectionCheck, + MaxQueryLength: cmd.MaxQueryLength, + TLS: cmd.TLS, + TLSSkipVerify: cmd.TLSSkipVerify, + TLSCertificateKey: tlsCertificateKey, + TLSCertificateKeyFilePassword: cmd.TLSCertificateKeyFilePassword, + TLSCa: tlsCa, + AuthenticationMechanism: cmd.AuthenticationMechanism, + AuthenticationDatabase: cmd.AuthenticationDatabase, MetricsMode: cmd.MetricsModeFlags.MetricsMode.EnumValue(), diff --git a/agent/agents/supervisor/supervisor.go b/agent/agents/supervisor/supervisor.go index 3239a2c736b..fd9e8451da9 100644 --- a/agent/agents/supervisor/supervisor.go +++ b/agent/agents/supervisor/supervisor.go @@ -780,6 +780,17 @@ func (s *Supervisor) processParams(agentID string, agentProcess *agentv1.SetStat } processParams.Env = append(processParams.Env, env...) + for _, varName := range agentProcess.EnvVariableNames { + value, exists := os.LookupEnv(varName) + if !exists { + s.l.Warnf("Environment variable %s not found in pmm-agent environment for agent %s", varName, agentID) + continue + } + + processParams.Env = append(processParams.Env, fmt.Sprintf("%s=%s", varName, value)) + s.l.Debugf("Resolved environment variable %s for agent %s", varName, agentID) + } + return &processParams, nil } diff --git a/api/agent/v1/agent.pb.go b/api/agent/v1/agent.pb.go index fbebba25392..de4b6fe6bfb 100644 --- a/api/agent/v1/agent.pb.go +++ b/api/agent/v1/agent.pb.go @@ -3667,8 +3667,10 @@ type SetStateRequest_AgentProcess struct { Env []string `protobuf:"bytes,5,rep,name=env,proto3" json:"env,omitempty"` TextFiles map[string]string `protobuf:"bytes,6,rep,name=text_files,json=textFiles,proto3" json:"text_files,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` RedactWords []string `protobuf:"bytes,7,rep,name=redact_words,json=redactWords,proto3" json:"redact_words,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Environment variable names to be resolved from pmm-agent's environment. + EnvVariableNames []string `protobuf:"bytes,8,rep,name=env_variable_names,json=envVariableNames,proto3" json:"env_variable_names,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SetStateRequest_AgentProcess) Reset() { @@ -3750,6 +3752,13 @@ func (x *SetStateRequest_AgentProcess) GetRedactWords() []string { return nil } +func (x *SetStateRequest_AgentProcess) GetEnvVariableNames() []string { + if x != nil { + return x.EnvVariableNames + } + return nil +} + // BuiltinAgent describes desired configuration of a single built-in agent for pmm-agent. type SetStateRequest_BuiltinAgent struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -6616,11 +6625,11 @@ const file_agent_v1_agent_proto_rawDesc = "" + "listenPort\x12*\n" + "\x11process_exec_path\x18\x04 \x01(\tR\x0fprocessExecPath\x12\x18\n" + "\aversion\x18\x05 \x01(\tR\aversion\"\x16\n" + - "\x14StateChangedResponse\"\x90\n" + + "\x14StateChangedResponse\"\xbe\n" + "\n" + "\x0fSetStateRequest\x12V\n" + "\x0fagent_processes\x18\x01 \x03(\v2-.agent.v1.SetStateRequest.AgentProcessesEntryR\x0eagentProcesses\x12S\n" + - "\x0ebuiltin_agents\x18\x02 \x03(\v2,.agent.v1.SetStateRequest.BuiltinAgentsEntryR\rbuiltinAgents\x1a\xfa\x02\n" + + "\x0ebuiltin_agents\x18\x02 \x03(\v2,.agent.v1.SetStateRequest.BuiltinAgentsEntryR\rbuiltinAgents\x1a\xa8\x03\n" + "\fAgentProcess\x12+\n" + "\x04type\x18\x01 \x01(\x0e2\x17.inventory.v1.AgentTypeR\x04type\x12.\n" + "\x13template_left_delim\x18\x02 \x01(\tR\x11templateLeftDelim\x120\n" + @@ -6629,7 +6638,8 @@ const file_agent_v1_agent_proto_rawDesc = "" + "\x03env\x18\x05 \x03(\tR\x03env\x12T\n" + "\n" + "text_files\x18\x06 \x03(\v25.agent.v1.SetStateRequest.AgentProcess.TextFilesEntryR\ttextFiles\x12!\n" + - "\fredact_words\x18\a \x03(\tR\vredactWords\x1a<\n" + + "\fredact_words\x18\a \x03(\tR\vredactWords\x12,\n" + + "\x12env_variable_names\x18\b \x03(\tR\x10envVariableNames\x1a<\n" + "\x0eTextFilesEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1ai\n" + diff --git a/api/agent/v1/agent.proto b/api/agent/v1/agent.proto index ceaea912505..ebc7049d512 100644 --- a/api/agent/v1/agent.proto +++ b/api/agent/v1/agent.proto @@ -60,6 +60,8 @@ message SetStateRequest { repeated string env = 5; map text_files = 6; repeated string redact_words = 7; + // Environment variable names to be resolved from pmm-agent's environment. + repeated string env_variable_names = 8; } map agent_processes = 1; // BuiltinAgent describes desired configuration of a single built-in agent for pmm-agent. diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 9f6b6b60b5d..8e43cd96b94 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -814,8 +814,10 @@ type MongoDBExporter struct { ExposeExporter bool `protobuf:"varint,27,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` // Metrics resolution for this agent. MetricsResolutions *common.MetricsResolutions `protobuf:"bytes,28,opt,name=metrics_resolutions,json=metricsResolutions,proto3" json:"metrics_resolutions,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Environment variable names passed to the exporter. + SharedEnvironmentVariableNames []string `protobuf:"bytes,29,rep,name=shared_environment_variable_names,json=sharedEnvironmentVariableNames,proto3" json:"shared_environment_variable_names,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MongoDBExporter) Reset() { @@ -981,6 +983,13 @@ func (x *MongoDBExporter) GetMetricsResolutions() *common.MetricsResolutions { return nil } +func (x *MongoDBExporter) GetSharedEnvironmentVariableNames() []string { + if x != nil { + return x.SharedEnvironmentVariableNames + } + return nil +} + // PostgresExporter runs on Generic or Container Node and exposes PostgreSQL Service metrics. type PostgresExporter struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -5609,10 +5618,11 @@ type AddMongoDBExporterParams struct { LogLevel LogLevel `protobuf:"varint,19,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` // Optionally expose the exporter process on all public interfaces ExposeExporter bool `protobuf:"varint,20,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` - // Environment variables to set for the exporter process. - AgentEnvironmentVariables map[string]string `protobuf:"bytes,21,rep,name=agent_environment_variables,json=agentEnvironmentVariables,proto3" json:"agent_environment_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Environment variable names to pass to the exporter. + // Values will be resolved from pmm-agent's environment when starting the exporter. + SharedEnvironmentVariableNames []string `protobuf:"bytes,21,rep,name=shared_environment_variable_names,json=sharedEnvironmentVariableNames,proto3" json:"shared_environment_variable_names,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AddMongoDBExporterParams) Reset() { @@ -5785,9 +5795,9 @@ func (x *AddMongoDBExporterParams) GetExposeExporter() bool { return false } -func (x *AddMongoDBExporterParams) GetAgentEnvironmentVariables() map[string]string { +func (x *AddMongoDBExporterParams) GetSharedEnvironmentVariableNames() []string { if x != nil { - return x.AgentEnvironmentVariables + return x.SharedEnvironmentVariableNames } return nil } @@ -8917,7 +8927,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aA\n" + "\x13ExtraDsnParamsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x92\a\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xdd\a\n" + "\x0fMongoDBExporter\x12\x19\n" + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12 \n" + "\fpmm_agent_id\x18\x02 \x01(\tR\n" + @@ -8941,7 +8951,8 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x11process_exec_path\x18\x19 \x01(\tR\x0fprocessExecPath\x123\n" + "\tlog_level\x18\x1a \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12'\n" + "\x0fexpose_exporter\x18\x1b \x01(\bR\x0eexposeExporter\x12K\n" + - "\x13metrics_resolutions\x18\x1c \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutions\x1a?\n" + + "\x13metrics_resolutions\x18\x1c \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutions\x12I\n" + + "!shared_environment_variable_names\x18\x1d \x03(\tR\x1esharedEnvironmentVariableNames\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xf2\x06\n" + @@ -9422,7 +9433,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x13metrics_resolutions\x18\x04 \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutionsB\t\n" + "\a_enableB\x10\n" + "\x0e_custom_labelsB\x16\n" + - "\x14_enable_push_metrics\"\xbf\t\n" + + "\x14_enable_push_metrics\"\xb4\b\n" + "\x18AddMongoDBExporterParams\x12)\n" + "\fpmm_agent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" + "pmmAgentId\x12&\n" + @@ -9446,13 +9457,10 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x11stats_collections\x18\x11 \x03(\tR\x10statsCollections\x12+\n" + "\x11collections_limit\x18\x12 \x01(\x05R\x10collectionsLimit\x123\n" + "\tlog_level\x18\x13 \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12'\n" + - "\x0fexpose_exporter\x18\x14 \x01(\bR\x0eexposeExporter\x12\x85\x01\n" + - "\x1bagent_environment_variables\x18\x15 \x03(\v2E.inventory.v1.AddMongoDBExporterParams.AgentEnvironmentVariablesEntryR\x19agentEnvironmentVariables\x1a?\n" + + "\x0fexpose_exporter\x18\x14 \x01(\bR\x0eexposeExporter\x12I\n" + + "!shared_environment_variable_names\x18\x15 \x03(\tR\x1esharedEnvironmentVariableNames\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aL\n" + - "\x1eAgentEnvironmentVariablesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xae\x02\n" + "\x1bChangeMongoDBExporterParams\x12\x1b\n" + "\x06enable\x18\x01 \x01(\bH\x00R\x06enable\x88\x01\x01\x12;\n" + @@ -9868,7 +9876,7 @@ func file_inventory_v1_agents_proto_rawDescGZIP() []byte { var ( file_inventory_v1_agents_proto_enumTypes = make([]protoimpl.EnumInfo, 1) - file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 102) + file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 101) file_inventory_v1_agents_proto_goTypes = []any{ (AgentType)(0), // 0: inventory.v1.AgentType (*PMMAgent)(nil), // 1: inventory.v1.PMMAgent @@ -9958,88 +9966,87 @@ var ( nil, // 85: inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry nil, // 86: inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry nil, // 87: inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - nil, // 88: inventory.v1.AddMongoDBExporterParams.AgentEnvironmentVariablesEntry - nil, // 89: inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - nil, // 90: inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - nil, // 91: inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - nil, // 92: inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry - nil, // 93: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - nil, // 94: inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry - nil, // 95: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - nil, // 96: inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry - nil, // 97: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - nil, // 98: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - nil, // 99: inventory.v1.AddRDSExporterParams.CustomLabelsEntry - nil, // 100: inventory.v1.AddExternalExporterParams.CustomLabelsEntry - nil, // 101: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - nil, // 102: inventory.v1.AddValkeyExporterParams.CustomLabelsEntry - (AgentStatus)(0), // 103: inventory.v1.AgentStatus - (LogLevel)(0), // 104: inventory.v1.LogLevel - (*common.MetricsResolutions)(nil), // 105: common.MetricsResolutions - (*common.StringMap)(nil), // 106: common.StringMap + nil, // 88: inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + nil, // 89: inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + nil, // 90: inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + nil, // 91: inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry + nil, // 92: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + nil, // 93: inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry + nil, // 94: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + nil, // 95: inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry + nil, // 96: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + nil, // 97: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + nil, // 98: inventory.v1.AddRDSExporterParams.CustomLabelsEntry + nil, // 99: inventory.v1.AddExternalExporterParams.CustomLabelsEntry + nil, // 100: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + nil, // 101: inventory.v1.AddValkeyExporterParams.CustomLabelsEntry + (AgentStatus)(0), // 102: inventory.v1.AgentStatus + (LogLevel)(0), // 103: inventory.v1.LogLevel + (*common.MetricsResolutions)(nil), // 104: common.MetricsResolutions + (*common.StringMap)(nil), // 105: common.StringMap } ) var file_inventory_v1_agents_proto_depIdxs = []int32{ 64, // 0: inventory.v1.PMMAgent.custom_labels:type_name -> inventory.v1.PMMAgent.CustomLabelsEntry - 103, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus - 103, // 2: inventory.v1.NomadAgent.status:type_name -> inventory.v1.AgentStatus + 102, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus + 102, // 2: inventory.v1.NomadAgent.status:type_name -> inventory.v1.AgentStatus 65, // 3: inventory.v1.NodeExporter.custom_labels:type_name -> inventory.v1.NodeExporter.CustomLabelsEntry - 103, // 4: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus - 104, // 5: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel - 105, // 6: inventory.v1.NodeExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 102, // 4: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus + 103, // 5: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel + 104, // 6: inventory.v1.NodeExporter.metrics_resolutions:type_name -> common.MetricsResolutions 66, // 7: inventory.v1.MySQLdExporter.custom_labels:type_name -> inventory.v1.MySQLdExporter.CustomLabelsEntry - 103, // 8: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus - 104, // 9: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel - 105, // 10: inventory.v1.MySQLdExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 102, // 8: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus + 103, // 9: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel + 104, // 10: inventory.v1.MySQLdExporter.metrics_resolutions:type_name -> common.MetricsResolutions 67, // 11: inventory.v1.MySQLdExporter.extra_dsn_params:type_name -> inventory.v1.MySQLdExporter.ExtraDsnParamsEntry 68, // 12: inventory.v1.MongoDBExporter.custom_labels:type_name -> inventory.v1.MongoDBExporter.CustomLabelsEntry - 103, // 13: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus - 104, // 14: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel - 105, // 15: inventory.v1.MongoDBExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 102, // 13: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus + 103, // 14: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel + 104, // 15: inventory.v1.MongoDBExporter.metrics_resolutions:type_name -> common.MetricsResolutions 69, // 16: inventory.v1.PostgresExporter.custom_labels:type_name -> inventory.v1.PostgresExporter.CustomLabelsEntry - 103, // 17: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus - 104, // 18: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel - 105, // 19: inventory.v1.PostgresExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 102, // 17: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus + 103, // 18: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel + 104, // 19: inventory.v1.PostgresExporter.metrics_resolutions:type_name -> common.MetricsResolutions 70, // 20: inventory.v1.ProxySQLExporter.custom_labels:type_name -> inventory.v1.ProxySQLExporter.CustomLabelsEntry - 103, // 21: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus - 104, // 22: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel - 105, // 23: inventory.v1.ProxySQLExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 102, // 21: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus + 103, // 22: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel + 104, // 23: inventory.v1.ProxySQLExporter.metrics_resolutions:type_name -> common.MetricsResolutions 71, // 24: inventory.v1.ValkeyExporter.custom_labels:type_name -> inventory.v1.ValkeyExporter.CustomLabelsEntry - 103, // 25: inventory.v1.ValkeyExporter.status:type_name -> inventory.v1.AgentStatus - 105, // 26: inventory.v1.ValkeyExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 102, // 25: inventory.v1.ValkeyExporter.status:type_name -> inventory.v1.AgentStatus + 104, // 26: inventory.v1.ValkeyExporter.metrics_resolutions:type_name -> common.MetricsResolutions 72, // 27: inventory.v1.QANMySQLPerfSchemaAgent.custom_labels:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry - 103, // 28: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus - 104, // 29: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel + 102, // 28: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus + 103, // 29: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel 73, // 30: inventory.v1.QANMySQLPerfSchemaAgent.extra_dsn_params:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.ExtraDsnParamsEntry 74, // 31: inventory.v1.QANMySQLSlowlogAgent.custom_labels:type_name -> inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry - 103, // 32: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus - 104, // 33: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel + 102, // 32: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus + 103, // 33: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel 75, // 34: inventory.v1.QANMySQLSlowlogAgent.extra_dsn_params:type_name -> inventory.v1.QANMySQLSlowlogAgent.ExtraDsnParamsEntry 76, // 35: inventory.v1.QANMongoDBProfilerAgent.custom_labels:type_name -> inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry - 103, // 36: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus - 104, // 37: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel + 102, // 36: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus + 103, // 37: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel 77, // 38: inventory.v1.QANMongoDBMongologAgent.custom_labels:type_name -> inventory.v1.QANMongoDBMongologAgent.CustomLabelsEntry - 103, // 39: inventory.v1.QANMongoDBMongologAgent.status:type_name -> inventory.v1.AgentStatus - 104, // 40: inventory.v1.QANMongoDBMongologAgent.log_level:type_name -> inventory.v1.LogLevel + 102, // 39: inventory.v1.QANMongoDBMongologAgent.status:type_name -> inventory.v1.AgentStatus + 103, // 40: inventory.v1.QANMongoDBMongologAgent.log_level:type_name -> inventory.v1.LogLevel 78, // 41: inventory.v1.QANPostgreSQLPgStatementsAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry - 103, // 42: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus - 104, // 43: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel + 102, // 42: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus + 103, // 43: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel 79, // 44: inventory.v1.QANPostgreSQLPgStatMonitorAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry - 103, // 45: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus - 104, // 46: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel + 102, // 45: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus + 103, // 46: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel 80, // 47: inventory.v1.RDSExporter.custom_labels:type_name -> inventory.v1.RDSExporter.CustomLabelsEntry - 103, // 48: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus - 104, // 49: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel - 105, // 50: inventory.v1.RDSExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 102, // 48: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus + 103, // 49: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel + 104, // 50: inventory.v1.RDSExporter.metrics_resolutions:type_name -> common.MetricsResolutions 81, // 51: inventory.v1.ExternalExporter.custom_labels:type_name -> inventory.v1.ExternalExporter.CustomLabelsEntry - 105, // 52: inventory.v1.ExternalExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 104, // 52: inventory.v1.ExternalExporter.metrics_resolutions:type_name -> common.MetricsResolutions 82, // 53: inventory.v1.AzureDatabaseExporter.custom_labels:type_name -> inventory.v1.AzureDatabaseExporter.CustomLabelsEntry - 103, // 54: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus - 104, // 55: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel - 105, // 56: inventory.v1.AzureDatabaseExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 106, // 57: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap - 105, // 58: inventory.v1.ChangeCommonAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 102, // 54: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus + 103, // 55: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel + 104, // 56: inventory.v1.AzureDatabaseExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 57: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap + 104, // 58: inventory.v1.ChangeCommonAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions 0, // 59: inventory.v1.ListAgentsRequest.agent_type:type_name -> inventory.v1.AgentType 1, // 60: inventory.v1.ListAgentsResponse.pmm_agent:type_name -> inventory.v1.PMMAgent 2, // 61: inventory.v1.ListAgentsResponse.vm_agent:type_name -> inventory.v1.VMAgent @@ -10143,84 +10150,83 @@ var file_inventory_v1_agents_proto_depIdxs = []int32{ 9, // 159: inventory.v1.ChangeAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter 83, // 160: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry 84, // 161: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry - 104, // 162: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel - 106, // 163: inventory.v1.ChangeNodeExporterParams.custom_labels:type_name -> common.StringMap - 105, // 164: inventory.v1.ChangeNodeExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 103, // 162: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 163: inventory.v1.ChangeNodeExporterParams.custom_labels:type_name -> common.StringMap + 104, // 164: inventory.v1.ChangeNodeExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions 85, // 165: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry - 104, // 166: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel + 103, // 166: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel 86, // 167: inventory.v1.AddMySQLdExporterParams.extra_dsn_params:type_name -> inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry - 106, // 168: inventory.v1.ChangeMySQLdExporterParams.custom_labels:type_name -> common.StringMap - 105, // 169: inventory.v1.ChangeMySQLdExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 105, // 168: inventory.v1.ChangeMySQLdExporterParams.custom_labels:type_name -> common.StringMap + 104, // 169: inventory.v1.ChangeMySQLdExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions 87, // 170: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - 104, // 171: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel - 88, // 172: inventory.v1.AddMongoDBExporterParams.agent_environment_variables:type_name -> inventory.v1.AddMongoDBExporterParams.AgentEnvironmentVariablesEntry - 106, // 173: inventory.v1.ChangeMongoDBExporterParams.custom_labels:type_name -> common.StringMap - 105, // 174: inventory.v1.ChangeMongoDBExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 89, // 175: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - 104, // 176: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel - 106, // 177: inventory.v1.ChangePostgresExporterParams.custom_labels:type_name -> common.StringMap - 105, // 178: inventory.v1.ChangePostgresExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 90, // 179: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - 104, // 180: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel - 106, // 181: inventory.v1.ChangeProxySQLExporterParams.custom_labels:type_name -> common.StringMap - 105, // 182: inventory.v1.ChangeProxySQLExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 91, // 183: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - 104, // 184: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel - 92, // 185: inventory.v1.AddQANMySQLPerfSchemaAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry - 106, // 186: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> common.StringMap - 105, // 187: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 93, // 188: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - 104, // 189: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel - 94, // 190: inventory.v1.AddQANMySQLSlowlogAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry - 106, // 191: inventory.v1.ChangeQANMySQLSlowlogAgentParams.custom_labels:type_name -> common.StringMap - 105, // 192: inventory.v1.ChangeQANMySQLSlowlogAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 95, // 193: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - 104, // 194: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel - 106, // 195: inventory.v1.ChangeQANMongoDBProfilerAgentParams.custom_labels:type_name -> common.StringMap - 105, // 196: inventory.v1.ChangeQANMongoDBProfilerAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 96, // 197: inventory.v1.AddQANMongoDBMongologAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry - 104, // 198: inventory.v1.AddQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel - 106, // 199: inventory.v1.ChangeQANMongoDBMongologAgentParams.custom_labels:type_name -> common.StringMap - 105, // 200: inventory.v1.ChangeQANMongoDBMongologAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 97, // 201: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - 104, // 202: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel - 106, // 203: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> common.StringMap - 105, // 204: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 98, // 205: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - 104, // 206: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel - 106, // 207: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> common.StringMap - 105, // 208: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 99, // 209: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry - 104, // 210: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel - 106, // 211: inventory.v1.ChangeRDSExporterParams.custom_labels:type_name -> common.StringMap - 105, // 212: inventory.v1.ChangeRDSExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 100, // 213: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry - 106, // 214: inventory.v1.ChangeExternalExporterParams.custom_labels:type_name -> common.StringMap - 105, // 215: inventory.v1.ChangeExternalExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 101, // 216: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - 104, // 217: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel - 106, // 218: inventory.v1.ChangeAzureDatabaseExporterParams.custom_labels:type_name -> common.StringMap - 105, // 219: inventory.v1.ChangeAzureDatabaseExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 102, // 220: inventory.v1.AddValkeyExporterParams.custom_labels:type_name -> inventory.v1.AddValkeyExporterParams.CustomLabelsEntry - 106, // 221: inventory.v1.ChangeValkeyExporterParams.custom_labels:type_name -> common.StringMap - 105, // 222: inventory.v1.ChangeValkeyExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 20, // 223: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest - 22, // 224: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest - 24, // 225: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest - 26, // 226: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest - 28, // 227: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest - 62, // 228: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest - 21, // 229: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse - 23, // 230: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse - 25, // 231: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse - 27, // 232: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse - 29, // 233: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse - 63, // 234: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse - 229, // [229:235] is the sub-list for method output_type - 223, // [223:229] is the sub-list for method input_type - 223, // [223:223] is the sub-list for extension type_name - 223, // [223:223] is the sub-list for extension extendee - 0, // [0:223] is the sub-list for field type_name + 103, // 171: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 172: inventory.v1.ChangeMongoDBExporterParams.custom_labels:type_name -> common.StringMap + 104, // 173: inventory.v1.ChangeMongoDBExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 88, // 174: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + 103, // 175: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 176: inventory.v1.ChangePostgresExporterParams.custom_labels:type_name -> common.StringMap + 104, // 177: inventory.v1.ChangePostgresExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 89, // 178: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + 103, // 179: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 180: inventory.v1.ChangeProxySQLExporterParams.custom_labels:type_name -> common.StringMap + 104, // 181: inventory.v1.ChangeProxySQLExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 90, // 182: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + 103, // 183: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel + 91, // 184: inventory.v1.AddQANMySQLPerfSchemaAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry + 105, // 185: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> common.StringMap + 104, // 186: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 92, // 187: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + 103, // 188: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel + 93, // 189: inventory.v1.AddQANMySQLSlowlogAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry + 105, // 190: inventory.v1.ChangeQANMySQLSlowlogAgentParams.custom_labels:type_name -> common.StringMap + 104, // 191: inventory.v1.ChangeQANMySQLSlowlogAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 94, // 192: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + 103, // 193: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 194: inventory.v1.ChangeQANMongoDBProfilerAgentParams.custom_labels:type_name -> common.StringMap + 104, // 195: inventory.v1.ChangeQANMongoDBProfilerAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 95, // 196: inventory.v1.AddQANMongoDBMongologAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry + 103, // 197: inventory.v1.AddQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 198: inventory.v1.ChangeQANMongoDBMongologAgentParams.custom_labels:type_name -> common.StringMap + 104, // 199: inventory.v1.ChangeQANMongoDBMongologAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 96, // 200: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + 103, // 201: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 202: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> common.StringMap + 104, // 203: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 97, // 204: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + 103, // 205: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 206: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> common.StringMap + 104, // 207: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 98, // 208: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry + 103, // 209: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 210: inventory.v1.ChangeRDSExporterParams.custom_labels:type_name -> common.StringMap + 104, // 211: inventory.v1.ChangeRDSExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 99, // 212: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry + 105, // 213: inventory.v1.ChangeExternalExporterParams.custom_labels:type_name -> common.StringMap + 104, // 214: inventory.v1.ChangeExternalExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 100, // 215: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + 103, // 216: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 217: inventory.v1.ChangeAzureDatabaseExporterParams.custom_labels:type_name -> common.StringMap + 104, // 218: inventory.v1.ChangeAzureDatabaseExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 101, // 219: inventory.v1.AddValkeyExporterParams.custom_labels:type_name -> inventory.v1.AddValkeyExporterParams.CustomLabelsEntry + 105, // 220: inventory.v1.ChangeValkeyExporterParams.custom_labels:type_name -> common.StringMap + 104, // 221: inventory.v1.ChangeValkeyExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 20, // 222: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest + 22, // 223: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest + 24, // 224: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest + 26, // 225: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest + 28, // 226: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest + 62, // 227: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest + 21, // 228: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse + 23, // 229: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse + 25, // 230: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse + 27, // 231: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse + 29, // 232: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse + 63, // 233: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse + 228, // [228:234] is the sub-list for method output_type + 222, // [222:228] is the sub-list for method input_type + 222, // [222:222] is the sub-list for extension type_name + 222, // [222:222] is the sub-list for extension extendee + 0, // [0:222] is the sub-list for field type_name } func init() { file_inventory_v1_agents_proto_init() } @@ -10345,7 +10351,7 @@ func file_inventory_v1_agents_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_inventory_v1_agents_proto_rawDesc), len(file_inventory_v1_agents_proto_rawDesc)), NumEnums: 1, - NumMessages: 102, + NumMessages: 101, NumExtensions: 0, NumServices: 1, }, diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index c732b4aa225..af3f6255a8d 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -8614,8 +8614,6 @@ func (m *AddMongoDBExporterParams) validate(all bool) error { // no validation rules for ExposeExporter - // no validation rules for AgentEnvironmentVariables - if len(errors) > 0 { return AddMongoDBExporterParamsMultiError(errors) } diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index ca337054894..f1e220d0101 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -232,6 +232,8 @@ message MongoDBExporter { bool expose_exporter = 27; // Metrics resolution for this agent. common.MetricsResolutions metrics_resolutions = 28; + // Environment variable names passed to the exporter. + repeated string shared_environment_variable_names = 29; } // PostgresExporter runs on Generic or Container Node and exposes PostgreSQL Service metrics. @@ -1030,8 +1032,9 @@ message AddMongoDBExporterParams { LogLevel log_level = 19; // Optionally expose the exporter process on all public interfaces bool expose_exporter = 20; - // Environment variables to set for the exporter process. - map agent_environment_variables = 21; + // Environment variable names to pass to the exporter. + // Values will be resolved from pmm-agent's environment when starting the exporter. + repeated string shared_environment_variable_names = 21; } message ChangeMongoDBExporterParams { diff --git a/api/inventory/v1/json/client/agents_service/add_agent_responses.go b/api/inventory/v1/json/client/agents_service/add_agent_responses.go index 1a77ecae7be..ea9dcbcd6b4 100644 --- a/api/inventory/v1/json/client/agents_service/add_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/add_agent_responses.go @@ -2928,6 +2928,9 @@ type AddAgentOKBodyMongodbExporter struct { // Optionally expose the exporter process on all public interfaces ExposeExporter bool `json:"expose_exporter,omitempty"` + // Environment variable names passed to the exporter. + SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + // metrics resolutions MetricsResolutions *AddAgentOKBodyMongodbExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } @@ -6706,8 +6709,9 @@ type AddAgentParamsBodyMongodbExporter struct { // Optionally expose the exporter process on all public interfaces ExposeExporter bool `json:"expose_exporter,omitempty"` - // Environment variables to set for the exporter process. - AgentEnvironmentVariables map[string]string `json:"agent_environment_variables,omitempty"` + // Environment variable names to pass to the exporter. + // Values will be resolved from pmm-agent's environment when starting the exporter. + SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` } // Validate validates this add agent params body mongodb exporter diff --git a/api/inventory/v1/json/client/agents_service/change_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_agent_responses.go index 2292ac63390..7ec669b64c3 100644 --- a/api/inventory/v1/json/client/agents_service/change_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/change_agent_responses.go @@ -2928,6 +2928,9 @@ type ChangeAgentOKBodyMongodbExporter struct { // Optionally expose the exporter process on all public interfaces ExposeExporter bool `json:"expose_exporter,omitempty"` + // Environment variable names passed to the exporter. + SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + // metrics resolutions MetricsResolutions *ChangeAgentOKBodyMongodbExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } diff --git a/api/inventory/v1/json/client/agents_service/get_agent_responses.go b/api/inventory/v1/json/client/agents_service/get_agent_responses.go index a96ef2c1ae8..6c8f9d1d0b3 100644 --- a/api/inventory/v1/json/client/agents_service/get_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/get_agent_responses.go @@ -2072,6 +2072,9 @@ type GetAgentOKBodyMongodbExporter struct { // Optionally expose the exporter process on all public interfaces ExposeExporter bool `json:"expose_exporter,omitempty"` + // Environment variable names passed to the exporter. + SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + // metrics resolutions MetricsResolutions *GetAgentOKBodyMongodbExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } diff --git a/api/inventory/v1/json/client/agents_service/list_agents_responses.go b/api/inventory/v1/json/client/agents_service/list_agents_responses.go index 4829432f892..71029151e93 100644 --- a/api/inventory/v1/json/client/agents_service/list_agents_responses.go +++ b/api/inventory/v1/json/client/agents_service/list_agents_responses.go @@ -2234,6 +2234,9 @@ type ListAgentsOKBodyMongodbExporterItems0 struct { // Optionally expose the exporter process on all public interfaces ExposeExporter bool `json:"expose_exporter,omitempty"` + // Environment variable names passed to the exporter. + SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + // metrics resolutions MetricsResolutions *ListAgentsOKBodyMongodbExporterItems0MetricsResolutions `json:"metrics_resolutions,omitempty"` } diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index 930d22706cc..2ef55e8057d 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -601,6 +601,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } } }, @@ -2418,10 +2426,10 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 19 }, - "agent_environment_variables": { - "description": "Environment variables to set for the exporter process.", - "type": "object", - "additionalProperties": { + "shared_environment_variable_names": { + "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", + "type": "array", + "items": { "type": "string" }, "x-order": 20 @@ -3988,6 +3996,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 3 @@ -5926,6 +5942,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 4 @@ -8677,6 +8701,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 2 diff --git a/api/management/v1/json/client/management_service/add_service_responses.go b/api/management/v1/json/client/management_service/add_service_responses.go index eceeb3f9c38..f8eed736801 100644 --- a/api/management/v1/json/client/management_service/add_service_responses.go +++ b/api/management/v1/json/client/management_service/add_service_responses.go @@ -2575,6 +2575,9 @@ type AddServiceOKBodyMongodbMongodbExporter struct { // Optionally expose the exporter process on all public interfaces ExposeExporter bool `json:"expose_exporter,omitempty"` + // Environment variable names passed to the exporter. + SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + // metrics resolutions MetricsResolutions *AddServiceOKBodyMongodbMongodbExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } @@ -9581,8 +9584,9 @@ type AddServiceParamsBodyMongodb struct { // Optionally expose the exporter process on all public interfaces ExposeExporter bool `json:"expose_exporter,omitempty"` - // Optionally, set environment variables that'll be passed to agent processes - AgentEnvironmentVariables map[string]string `json:"agent_environment_variables,omitempty"` + // Environment variable names to pass to the exporter. + // Values will be resolved from pmm-agent's environment when starting the exporter. + SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` // add node AddNode *AddServiceParamsBodyMongodbAddNode `json:"add_node,omitempty"` diff --git a/api/management/v1/json/v1.json b/api/management/v1/json/v1.json index ac7842ff5a0..4657b151f92 100644 --- a/api/management/v1/json/v1.json +++ b/api/management/v1/json/v1.json @@ -2496,10 +2496,10 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 32 }, - "agent_environment_variables": { - "type": "object", - "title": "Optionally, set environment variables that'll be passed to agent processes", - "additionalProperties": { + "shared_environment_variable_names": { + "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", + "type": "array", + "items": { "type": "string" }, "x-order": 33 @@ -4456,6 +4456,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 1 diff --git a/api/management/v1/mongodb.pb.go b/api/management/v1/mongodb.pb.go index 9234951a988..9862c91c1ea 100644 --- a/api/management/v1/mongodb.pb.go +++ b/api/management/v1/mongodb.pb.go @@ -104,10 +104,11 @@ type AddMongoDBServiceParams struct { LogLevel v1.LogLevel `protobuf:"varint,33,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` // Optionally expose the exporter process on all public interfaces ExposeExporter bool `protobuf:"varint,34,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` - // Optionally, set environment variables that'll be passed to agent processes - AgentEnvironmentVariables map[string]string `protobuf:"bytes,36,rep,name=agent_environment_variables,json=agentEnvironmentVariables,proto3" json:"agent_environment_variables,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Environment variable names to pass to the exporter. + // Values will be resolved from pmm-agent's environment when starting the exporter. + SharedEnvironmentVariableNames []string `protobuf:"bytes,36,rep,name=shared_environment_variable_names,json=sharedEnvironmentVariableNames,proto3" json:"shared_environment_variable_names,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AddMongoDBServiceParams) Reset() { @@ -371,9 +372,9 @@ func (x *AddMongoDBServiceParams) GetExposeExporter() bool { return false } -func (x *AddMongoDBServiceParams) GetAgentEnvironmentVariables() map[string]string { +func (x *AddMongoDBServiceParams) GetSharedEnvironmentVariableNames() []string { if x != nil { - return x.AgentEnvironmentVariables + return x.SharedEnvironmentVariableNames } return nil } @@ -450,7 +451,7 @@ var File_management_v1_mongodb_proto protoreflect.FileDescriptor const file_management_v1_mongodb_proto_rawDesc = "" + "\n" + - "\x1bmanagement/v1/mongodb.proto\x12\rmanagement.v1\x1a\x19inventory/v1/agents.proto\x1a\x1cinventory/v1/log_level.proto\x1a\x1binventory/v1/services.proto\x1a\x1bmanagement/v1/metrics.proto\x1a\x18management/v1/node.proto\x1a\x17validate/validate.proto\"\xd9\r\n" + + "\x1bmanagement/v1/mongodb.proto\x12\rmanagement.v1\x1a\x19inventory/v1/agents.proto\x1a\x1cinventory/v1/log_level.proto\x1a\x1binventory/v1/services.proto\x1a\x1bmanagement/v1/metrics.proto\x1a\x18management/v1/node.proto\x1a\x17validate/validate.proto\"\xce\f\n" + "\x17AddMongoDBServiceParams\x12\x17\n" + "\anode_id\x18\x01 \x01(\tR\x06nodeId\x12\x1b\n" + "\tnode_name\x18\x02 \x01(\tR\bnodeName\x127\n" + @@ -486,13 +487,10 @@ const file_management_v1_mongodb_proto_rawDesc = "" + "\x11collections_limit\x18\x1f \x01(\x05R\x10collectionsLimit\x122\n" + "\x15enable_all_collectors\x18 \x01(\bR\x13enableAllCollectors\x123\n" + "\tlog_level\x18! \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12'\n" + - "\x0fexpose_exporter\x18\" \x01(\bR\x0eexposeExporter\x12\x85\x01\n" + - "\x1bagent_environment_variables\x18$ \x03(\v2E.management.v1.AddMongoDBServiceParams.AgentEnvironmentVariablesEntryR\x19agentEnvironmentVariables\x1a?\n" + + "\x0fexpose_exporter\x18\" \x01(\bR\x0eexposeExporter\x12I\n" + + "!shared_environment_variable_names\x18$ \x03(\tR\x1esharedEnvironmentVariableNames\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aL\n" + - "\x1eAgentEnvironmentVariablesEntry\x12\x10\n" + - "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01J\x04\b\b\x10\tR\x17query_examples_disabled\"\xca\x02\n" + "\x14MongoDBServiceResult\x126\n" + "\aservice\x18\x01 \x01(\v2\x1c.inventory.v1.MongoDBServiceR\aservice\x12H\n" + @@ -514,37 +512,35 @@ func file_management_v1_mongodb_proto_rawDescGZIP() []byte { } var ( - file_management_v1_mongodb_proto_msgTypes = make([]protoimpl.MessageInfo, 4) + file_management_v1_mongodb_proto_msgTypes = make([]protoimpl.MessageInfo, 3) file_management_v1_mongodb_proto_goTypes = []any{ (*AddMongoDBServiceParams)(nil), // 0: management.v1.AddMongoDBServiceParams (*MongoDBServiceResult)(nil), // 1: management.v1.MongoDBServiceResult nil, // 2: management.v1.AddMongoDBServiceParams.CustomLabelsEntry - nil, // 3: management.v1.AddMongoDBServiceParams.AgentEnvironmentVariablesEntry - (*AddNodeParams)(nil), // 4: management.v1.AddNodeParams - (MetricsMode)(0), // 5: management.v1.MetricsMode - (v1.LogLevel)(0), // 6: inventory.v1.LogLevel - (*v1.MongoDBService)(nil), // 7: inventory.v1.MongoDBService - (*v1.MongoDBExporter)(nil), // 8: inventory.v1.MongoDBExporter - (*v1.QANMongoDBProfilerAgent)(nil), // 9: inventory.v1.QANMongoDBProfilerAgent - (*v1.QANMongoDBMongologAgent)(nil), // 10: inventory.v1.QANMongoDBMongologAgent + (*AddNodeParams)(nil), // 3: management.v1.AddNodeParams + (MetricsMode)(0), // 4: management.v1.MetricsMode + (v1.LogLevel)(0), // 5: inventory.v1.LogLevel + (*v1.MongoDBService)(nil), // 6: inventory.v1.MongoDBService + (*v1.MongoDBExporter)(nil), // 7: inventory.v1.MongoDBExporter + (*v1.QANMongoDBProfilerAgent)(nil), // 8: inventory.v1.QANMongoDBProfilerAgent + (*v1.QANMongoDBMongologAgent)(nil), // 9: inventory.v1.QANMongoDBMongologAgent } ) var file_management_v1_mongodb_proto_depIdxs = []int32{ - 4, // 0: management.v1.AddMongoDBServiceParams.add_node:type_name -> management.v1.AddNodeParams - 2, // 1: management.v1.AddMongoDBServiceParams.custom_labels:type_name -> management.v1.AddMongoDBServiceParams.CustomLabelsEntry - 5, // 2: management.v1.AddMongoDBServiceParams.metrics_mode:type_name -> management.v1.MetricsMode - 6, // 3: management.v1.AddMongoDBServiceParams.log_level:type_name -> inventory.v1.LogLevel - 3, // 4: management.v1.AddMongoDBServiceParams.agent_environment_variables:type_name -> management.v1.AddMongoDBServiceParams.AgentEnvironmentVariablesEntry - 7, // 5: management.v1.MongoDBServiceResult.service:type_name -> inventory.v1.MongoDBService - 8, // 6: management.v1.MongoDBServiceResult.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 9, // 7: management.v1.MongoDBServiceResult.qan_mongodb_profiler:type_name -> inventory.v1.QANMongoDBProfilerAgent - 10, // 8: management.v1.MongoDBServiceResult.qan_mongodb_mongolog:type_name -> inventory.v1.QANMongoDBMongologAgent - 9, // [9:9] is the sub-list for method output_type - 9, // [9:9] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 3, // 0: management.v1.AddMongoDBServiceParams.add_node:type_name -> management.v1.AddNodeParams + 2, // 1: management.v1.AddMongoDBServiceParams.custom_labels:type_name -> management.v1.AddMongoDBServiceParams.CustomLabelsEntry + 4, // 2: management.v1.AddMongoDBServiceParams.metrics_mode:type_name -> management.v1.MetricsMode + 5, // 3: management.v1.AddMongoDBServiceParams.log_level:type_name -> inventory.v1.LogLevel + 6, // 4: management.v1.MongoDBServiceResult.service:type_name -> inventory.v1.MongoDBService + 7, // 5: management.v1.MongoDBServiceResult.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 8, // 6: management.v1.MongoDBServiceResult.qan_mongodb_profiler:type_name -> inventory.v1.QANMongoDBProfilerAgent + 9, // 7: management.v1.MongoDBServiceResult.qan_mongodb_mongolog:type_name -> inventory.v1.QANMongoDBMongologAgent + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_management_v1_mongodb_proto_init() } @@ -560,7 +556,7 @@ func file_management_v1_mongodb_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_management_v1_mongodb_proto_rawDesc), len(file_management_v1_mongodb_proto_rawDesc)), NumEnums: 0, - NumMessages: 4, + NumMessages: 3, NumExtensions: 0, NumServices: 0, }, diff --git a/api/management/v1/mongodb.pb.validate.go b/api/management/v1/mongodb.pb.validate.go index 554ec9f8255..cf5a5df9b7d 100644 --- a/api/management/v1/mongodb.pb.validate.go +++ b/api/management/v1/mongodb.pb.validate.go @@ -168,8 +168,6 @@ func (m *AddMongoDBServiceParams) validate(all bool) error { // no validation rules for ExposeExporter - // no validation rules for AgentEnvironmentVariables - if len(errors) > 0 { return AddMongoDBServiceParamsMultiError(errors) } diff --git a/api/management/v1/mongodb.proto b/api/management/v1/mongodb.proto index d81d5682dec..a485bba8922 100644 --- a/api/management/v1/mongodb.proto +++ b/api/management/v1/mongodb.proto @@ -92,8 +92,9 @@ message AddMongoDBServiceParams { inventory.v1.LogLevel log_level = 33; // Optionally expose the exporter process on all public interfaces bool expose_exporter = 34; - // Optionally, set environment variables that'll be passed to agent processes - map agent_environment_variables = 36; + // Environment variable names to pass to the exporter. + // Values will be resolved from pmm-agent's environment when starting the exporter. + repeated string shared_environment_variable_names = 36; } message MongoDBServiceResult { diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 7febe854cc3..1e36cc55dce 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -5735,6 +5735,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } } }, @@ -7552,10 +7560,10 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 19 }, - "agent_environment_variables": { - "description": "Environment variables to set for the exporter process.", - "type": "object", - "additionalProperties": { + "shared_environment_variable_names": { + "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", + "type": "array", + "items": { "type": "string" }, "x-order": 20 @@ -9122,6 +9130,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 3 @@ -11060,6 +11076,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 4 @@ -13811,6 +13835,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 2 @@ -21752,10 +21784,10 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 32 }, - "agent_environment_variables": { - "type": "object", - "title": "Optionally, set environment variables that'll be passed to agent processes", - "additionalProperties": { + "shared_environment_variable_names": { + "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", + "type": "array", + "items": { "type": "string" }, "x-order": 33 @@ -23712,6 +23744,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 1 diff --git a/api/swagger/swagger.json b/api/swagger/swagger.json index 6f6547d609e..94c0a42fe04 100644 --- a/api/swagger/swagger.json +++ b/api/swagger/swagger.json @@ -4777,6 +4777,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } } }, @@ -6594,10 +6602,10 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 19 }, - "agent_environment_variables": { - "description": "Environment variables to set for the exporter process.", - "type": "object", - "additionalProperties": { + "shared_environment_variable_names": { + "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", + "type": "array", + "items": { "type": "string" }, "x-order": 20 @@ -8164,6 +8172,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 3 @@ -10102,6 +10118,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 4 @@ -12853,6 +12877,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 2 @@ -20794,10 +20826,10 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 32 }, - "agent_environment_variables": { - "type": "object", - "title": "Optionally, set environment variables that'll be passed to agent processes", - "additionalProperties": { + "shared_environment_variable_names": { + "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", + "type": "array", + "items": { "type": "string" }, "x-order": 33 @@ -22754,6 +22786,14 @@ } }, "x-order": 18 + }, + "shared_environment_variable_names": { + "description": "Environment variable names passed to the exporter.", + "type": "array", + "items": { + "type": "string" + }, + "x-order": 19 } }, "x-order": 1 diff --git a/managed/models/agent_helpers.go b/managed/models/agent_helpers.go index c44e600dced..5455d7461f1 100644 --- a/managed/models/agent_helpers.go +++ b/managed/models/agent_helpers.go @@ -759,26 +759,26 @@ func CreateExternalExporter(q *reform.Querier, params *CreateExternalExporterPar // CreateAgentParams params for add common exporter. type CreateAgentParams struct { - PMMAgentID string - NodeID string - ServiceID string - Username string - Password string - AgentPassword string - CustomLabels map[string]string - EnvironmentVariables map[string]string - TLS bool - TLSSkipVerify bool - LogLevel string - Disabled bool - ExporterOptions ExporterOptions - QANOptions QANOptions - AWSOptions AWSOptions - AzureOptions AzureOptions - MongoDBOptions MongoDBOptions - MySQLOptions MySQLOptions - PostgreSQLOptions PostgreSQLOptions - ValkeyOptions ValkeyOptions + PMMAgentID string + NodeID string + ServiceID string + Username string + Password string + AgentPassword string + CustomLabels map[string]string + SharedEnvironmentVariableNames []string + TLS bool + TLSSkipVerify bool + LogLevel string + Disabled bool + ExporterOptions ExporterOptions + QANOptions QANOptions + AWSOptions AWSOptions + AzureOptions AzureOptions + MongoDBOptions MongoDBOptions + MySQLOptions MySQLOptions + PostgreSQLOptions PostgreSQLOptions + ValkeyOptions ValkeyOptions } func compatibleNodeAndAgent(nodeType NodeType, agentType AgentType) bool { @@ -924,7 +924,7 @@ func CreateAgent(q *reform.Querier, agentType AgentType, params *CreateAgentPara if err := row.SetCustomLabels(params.CustomLabels); err != nil { return nil, err } - if err := row.SetEnvironmentVariables(params.EnvironmentVariables); err != nil { + if err := row.SetSharedEnvironmentVariableNames(params.SharedEnvironmentVariableNames); err != nil { return nil, err } diff --git a/managed/models/agent_model.go b/managed/models/agent_model.go index 0633e777136..f99dd745328 100644 --- a/managed/models/agent_model.go +++ b/managed/models/agent_model.go @@ -18,6 +18,7 @@ package models import ( "bytes" "database/sql/driver" + "encoding/json" "fmt" "maps" "net" @@ -295,16 +296,16 @@ func (c ValkeyOptions) IsEmpty() bool { // //reform:agents type Agent struct { - AgentID string `reform:"agent_id,pk"` - AgentType AgentType `reform:"agent_type"` - RunsOnNodeID *string `reform:"runs_on_node_id"` - ServiceID *string `reform:"service_id"` - NodeID *string `reform:"node_id"` - PMMAgentID *string `reform:"pmm_agent_id"` - CustomLabels []byte `reform:"custom_labels"` - EnvironmentVariables []byte `reform:"environment_variables"` - CreatedAt time.Time `reform:"created_at"` - UpdatedAt time.Time `reform:"updated_at"` + AgentID string `reform:"agent_id,pk"` + AgentType AgentType `reform:"agent_type"` + RunsOnNodeID *string `reform:"runs_on_node_id"` + ServiceID *string `reform:"service_id"` + NodeID *string `reform:"node_id"` + PMMAgentID *string `reform:"pmm_agent_id"` + CustomLabels []byte `reform:"custom_labels"` + SharedEnvironmentVariables []byte `reform:"shared_environment_variables"` + CreatedAt time.Time `reform:"created_at"` + UpdatedAt time.Time `reform:"updated_at"` Disabled bool `reform:"disabled"` Status string `reform:"status"` @@ -339,8 +340,8 @@ func (s *Agent) BeforeInsert() error { if len(s.CustomLabels) == 0 { s.CustomLabels = nil } - if len(s.EnvironmentVariables) == 0 { - s.EnvironmentVariables = nil + if len(s.SharedEnvironmentVariables) == 0 { + s.SharedEnvironmentVariables = nil } if s.Status == "" && s.AgentType != ExternalExporterType && s.AgentType != PMMAgentType { s.Status = AgentStatusUnknown @@ -357,8 +358,8 @@ func (s *Agent) BeforeUpdate() error { if len(s.CustomLabels) == 0 { s.CustomLabels = nil } - if len(s.EnvironmentVariables) == 0 { - s.EnvironmentVariables = nil + if len(s.SharedEnvironmentVariables) == 0 { + s.SharedEnvironmentVariables = nil } if s.Disabled { s.Status = agentStatusDone @@ -373,8 +374,8 @@ func (s *Agent) AfterFind() error { if len(s.CustomLabels) == 0 { s.CustomLabels = nil } - if len(s.EnvironmentVariables) == 0 { - s.EnvironmentVariables = nil + if len(s.SharedEnvironmentVariables) == 0 { + s.SharedEnvironmentVariables = nil } return nil } @@ -389,14 +390,32 @@ func (s *Agent) SetCustomLabels(m map[string]string) error { return setLabels(m, &s.CustomLabels) } -// GetEnvironmentVariables decodes environment variables. -func (s *Agent) GetEnvironmentVariables() (map[string]string, error) { - return getEnvironmentVariables(s.EnvironmentVariables) +// GetSharedEnvironmentVariableNames decodes shared environment variable names. +func (s *Agent) GetSharedEnvironmentVariableNames() ([]string, error) { + if s.SharedEnvironmentVariables == nil { + return nil, nil + } + + var names []string + if err := json.Unmarshal(s.SharedEnvironmentVariables, &names); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal shared environment variable names") + } + return names, nil } -// SetEnvironmentVariables encodes environment variables. -func (s *Agent) SetEnvironmentVariables(m map[string]string) error { - return setEnvironmentVariables(m, &s.EnvironmentVariables) +// SetSharedEnvironmentVariableNames encodes shared environment variable names. +func (s *Agent) SetSharedEnvironmentVariableNames(names []string) error { + if len(names) == 0 { + s.SharedEnvironmentVariables = nil + return nil + } + + b, err := json.Marshal(names) + if err != nil { + return errors.Wrap(err, "failed to marshal shared environment variable names") + } + s.SharedEnvironmentVariables = b + return nil } // GetAgentPassword returns agent password, if it is empty then agent ID. diff --git a/managed/models/agent_model_reform.go b/managed/models/agent_model_reform.go index 2f6137d7a6d..1aaafcab5c9 100644 --- a/managed/models/agent_model_reform.go +++ b/managed/models/agent_model_reform.go @@ -35,7 +35,7 @@ func (v *agentTableType) Columns() []string { "node_id", "pmm_agent_id", "custom_labels", - "environment_variables", + "shared_environment_variables", "created_at", "updated_at", "disabled", @@ -88,7 +88,7 @@ var AgentTable = &agentTableType{ {Name: "NodeID", Type: "*string", Column: "node_id"}, {Name: "PMMAgentID", Type: "*string", Column: "pmm_agent_id"}, {Name: "CustomLabels", Type: "[]uint8", Column: "custom_labels"}, - {Name: "EnvironmentVariables", Type: "[]uint8", Column: "environment_variables"}, + {Name: "SharedEnvironmentVariables", Type: "[]uint8", Column: "shared_environment_variables"}, {Name: "CreatedAt", Type: "time.Time", Column: "created_at"}, {Name: "UpdatedAt", Type: "time.Time", Column: "updated_at"}, {Name: "Disabled", Type: "bool", Column: "disabled"}, @@ -126,7 +126,7 @@ func (s Agent) String() string { res[4] = "NodeID: " + reform.Inspect(s.NodeID, true) res[5] = "PMMAgentID: " + reform.Inspect(s.PMMAgentID, true) res[6] = "CustomLabels: " + reform.Inspect(s.CustomLabels, true) - res[7] = "EnvironmentVariables: " + reform.Inspect(s.EnvironmentVariables, true) + res[7] = "SharedEnvironmentVariables: " + reform.Inspect(s.SharedEnvironmentVariables, true) res[8] = "CreatedAt: " + reform.Inspect(s.CreatedAt, true) res[9] = "UpdatedAt: " + reform.Inspect(s.UpdatedAt, true) res[10] = "Disabled: " + reform.Inspect(s.Disabled, true) @@ -162,7 +162,7 @@ func (s *Agent) Values() []interface{} { s.NodeID, s.PMMAgentID, s.CustomLabels, - s.EnvironmentVariables, + s.SharedEnvironmentVariables, s.CreatedAt, s.UpdatedAt, s.Disabled, @@ -198,7 +198,7 @@ func (s *Agent) Pointers() []interface{} { &s.NodeID, &s.PMMAgentID, &s.CustomLabels, - &s.EnvironmentVariables, + &s.SharedEnvironmentVariables, &s.CreatedAt, &s.UpdatedAt, &s.Disabled, diff --git a/managed/models/database.go b/managed/models/database.go index 16629be96bc..1d03b8aac68 100644 --- a/managed/models/database.go +++ b/managed/models/database.go @@ -1150,7 +1150,7 @@ var databaseSchema = [][]string{ `UPDATE agents SET disabled = true WHERE agent_type = 'qan-postgresql-pgstatements-agent' AND service_id = (SELECT service_id FROM services WHERE service_name = 'pmm-server-postgresql' LIMIT 1);`, }, 113: { - `ALTER TABLE agents ADD COLUMN environment_variables TEXT`, + `ALTER TABLE agents ADD COLUMN shared_environment_variables TEXT`, }, } diff --git a/managed/models/encryption_helpers.go b/managed/models/encryption_helpers.go index 8509067cbf4..275385d290e 100644 --- a/managed/models/encryption_helpers.go +++ b/managed/models/encryption_helpers.go @@ -59,14 +59,6 @@ func agentEncryption(agent Agent, handler func(string) (string, error)) Agent { agent.AgentPassword = &agentPassword } - if agent.EnvironmentVariables != nil { - variables, err := handler(string(agent.EnvironmentVariables)) - if err != nil { - logrus.Warning(err) - } - agent.EnvironmentVariables = []byte(variables) - } - var err error if !agent.AWSOptions.IsEmpty() { agent.AWSOptions.AWSAccessKey, err = handler(agent.AWSOptions.AWSAccessKey) diff --git a/managed/models/models.go b/managed/models/models.go index caaea50234a..c92479e1b0c 100644 --- a/managed/models/models.go +++ b/managed/models/models.go @@ -143,18 +143,6 @@ func getLabels(b []byte) (map[string]string, error) { return m, nil } -// getEnvironmentVariables deserializes model's environment variables. -func getEnvironmentVariables(b []byte) (map[string]string, error) { - if len(b) == 0 { - return nil, nil //nolint:nilnil - } - m := make(map[string]string) - if err := json.Unmarshal(b, &m); err != nil { - return nil, errors.Wrap(err, "failed to decode environment variables") - } - return m, nil -} - // getLabels serializes model's Prometheus labels. func setLabels(m map[string]string, res *[]byte) error { if err := prepareLabels(m, false); err != nil { @@ -174,25 +162,6 @@ func setLabels(m map[string]string, res *[]byte) error { return nil } -// setEnvironmentVariables serializes model's Prometheus labels. -func setEnvironmentVariables(m map[string]string, res *[]byte) error { - if err := prepareLabels(m, false); err != nil { - return err - } - - if len(m) == 0 { - *res = nil - return nil - } - - b, err := json.Marshal(m) - if err != nil { - return errors.Wrap(err, "failed to encode environment variables") - } - *res = b - return nil -} - // jsonValue implements database/sql/driver.Valuer interface for v that should be a value. func jsonValue(v interface{}) (driver.Value, error) { b, err := json.Marshal(v) diff --git a/managed/services/agents/mongodb.go b/managed/services/agents/mongodb.go index 76bb012fc3c..4b78c214154 100644 --- a/managed/services/agents/mongodb.go +++ b/managed/services/agents/mongodb.go @@ -57,14 +57,12 @@ func mongodbExporterConfig(node *models.Node, service *models.Service, exporter sort.Strings(args) database := exporter.MongoDBOptions.AuthenticationDatabase - envVars, err := exporter.GetEnvironmentVariables() + envVarNames, err := exporter.GetSharedEnvironmentVariableNames() if err != nil { return nil, err } - env := make([]string, 0, 1+len(envVars)) - env = append(env, fmt.Sprintf("MONGODB_URI=%s", exporter.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: database}, tdp, pmmAgentVersion))) - for k, v := range envVars { - env = append(env, fmt.Sprintf("%s=%s", k, v)) + env := []string{ + fmt.Sprintf("MONGODB_URI=%s", exporter.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: database}, tdp, pmmAgentVersion)), } res := &agentv1.SetStateRequest_AgentProcess{ @@ -73,6 +71,7 @@ func mongodbExporterConfig(node *models.Node, service *models.Service, exporter TemplateRightDelim: tdp.Right, Args: args, Env: env, + EnvVariableNames: envVarNames, TextFiles: exporter.Files(), } diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index 1d4bf707ab3..1428dafe77e 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -364,16 +364,16 @@ func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1. var agent *inventoryv1.MongoDBExporter e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ - PMMAgentID: p.PmmAgentId, - ServiceID: p.ServiceId, - Username: p.Username, - Password: p.Password, - AgentPassword: p.AgentPassword, - CustomLabels: p.CustomLabels, - EnvironmentVariables: p.GetAgentEnvironmentVariables(), - TLS: p.Tls, - TLSSkipVerify: p.TlsSkipVerify, - MongoDBOptions: models.MongoDBOptionsFromRequest(p), + PMMAgentID: p.PmmAgentId, + ServiceID: p.ServiceId, + Username: p.Username, + Password: p.Password, + AgentPassword: p.AgentPassword, + CustomLabels: p.CustomLabels, + SharedEnvironmentVariableNames: p.GetSharedEnvironmentVariableNames(), + TLS: p.Tls, + TLSSkipVerify: p.TlsSkipVerify, + MongoDBOptions: models.MongoDBOptionsFromRequest(p), ExporterOptions: models.ExporterOptions{ PushMetrics: p.PushMetrics, DisabledCollectors: p.DisableCollectors, diff --git a/managed/services/management/mongodb.go b/managed/services/management/mongodb.go index e94a59dba40..c4da601e7be 100644 --- a/managed/services/management/mongodb.go +++ b/managed/services/management/mongodb.go @@ -63,16 +63,16 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad } row, err := models.CreateAgent(tx.Querier, models.MongoDBExporterType, &models.CreateAgentParams{ - PMMAgentID: req.PmmAgentId, - ServiceID: service.ServiceID, - Username: req.Username, - Password: req.Password, - AgentPassword: req.AgentPassword, - EnvironmentVariables: req.AgentEnvironmentVariables, - TLS: req.Tls, - TLSSkipVerify: req.TlsSkipVerify, - MongoDBOptions: models.MongoDBOptionsFromRequest(req), - LogLevel: services.SpecifyLogLevel(req.LogLevel, inventoryv1.LogLevel_LOG_LEVEL_FATAL), + PMMAgentID: req.PmmAgentId, + ServiceID: service.ServiceID, + Username: req.Username, + Password: req.Password, + AgentPassword: req.AgentPassword, + SharedEnvironmentVariableNames: req.SharedEnvironmentVariableNames, + TLS: req.Tls, + TLSSkipVerify: req.TlsSkipVerify, + MongoDBOptions: models.MongoDBOptionsFromRequest(req), + LogLevel: services.SpecifyLogLevel(req.LogLevel, inventoryv1.LogLevel_LOG_LEVEL_FATAL), ExporterOptions: models.ExporterOptions{ ExposeExporter: req.ExposeExporter, PushMetrics: isPushMode(req.MetricsMode), @@ -101,13 +101,13 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad if req.QanMongodbProfiler { row, err = models.CreateAgent(tx.Querier, models.QANMongoDBProfilerAgentType, &models.CreateAgentParams{ - PMMAgentID: req.PmmAgentId, - ServiceID: service.ServiceID, - Username: req.Username, - Password: req.Password, - EnvironmentVariables: req.AgentEnvironmentVariables, - TLS: req.Tls, - TLSSkipVerify: req.TlsSkipVerify, + PMMAgentID: req.PmmAgentId, + ServiceID: service.ServiceID, + Username: req.Username, + Password: req.Password, + SharedEnvironmentVariableNames: req.SharedEnvironmentVariableNames, + TLS: req.Tls, + TLSSkipVerify: req.TlsSkipVerify, QANOptions: models.QANOptions{ MaxQueryLength: req.MaxQueryLength, // TODO QueryExamplesDisabled https://jira.percona.com/browse/PMM-7860 @@ -128,13 +128,13 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad if req.QanMongodbMongolog { row, err = models.CreateAgent(tx.Querier, models.QANMongoDBMongologAgentType, &models.CreateAgentParams{ - PMMAgentID: req.PmmAgentId, - ServiceID: service.ServiceID, - Username: req.Username, - Password: req.Password, - EnvironmentVariables: req.AgentEnvironmentVariables, - TLS: req.Tls, - TLSSkipVerify: req.TlsSkipVerify, + PMMAgentID: req.PmmAgentId, + ServiceID: service.ServiceID, + Username: req.Username, + Password: req.Password, + SharedEnvironmentVariableNames: req.SharedEnvironmentVariableNames, + TLS: req.Tls, + TLSSkipVerify: req.TlsSkipVerify, QANOptions: models.QANOptions{ MaxQueryLength: req.MaxQueryLength, // TODO QueryExamplesDisabled https://jira.percona.com/browse/PMM-7860 From 86e364e2d3cbab59a416759ad59f69c8cea72854 Mon Sep 17 00:00:00 2001 From: Michael Okoko Date: Mon, 17 Nov 2025 10:28:20 +0100 Subject: [PATCH 7/9] fix linter errors --- admin/commands/base.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/admin/commands/base.go b/admin/commands/base.go index 68591dd1e56..3e1db7e9a07 100644 --- a/admin/commands/base.go +++ b/admin/commands/base.go @@ -185,14 +185,12 @@ func ParseDisableCollectors(collectors []string) []string { } // ValidateEnvironmentVariableNames validates environment variable names. -// It takes a slice of variable names and returns a validated list. -// Variable names must match the pattern: [A-Z_][A-Z0-9_]* func ValidateEnvironmentVariableNames(varNames []string) ([]string, error) { if len(varNames) == 0 { return nil, nil } - var result []string + result := make([]string, 0, len(varNames)) validNamePattern := regexp.MustCompile(`^[A-Z_][A-Z0-9_]*$`) for _, name := range varNames { From 8036df7f5257b385bf5269ce49818b4732cd31bd Mon Sep 17 00:00:00 2001 From: Michael Okoko Date: Sun, 30 Nov 2025 23:28:02 +0100 Subject: [PATCH 8/9] drop shared prefix --- admin/commands/base.go | 2 +- api/agent/v1/agent.pb.go | 2 +- api/agent/v1/agent.proto | 2 +- api/inventory/v1/agents.pb.go | 32 ++++++------- api/inventory/v1/agents.proto | 4 +- .../agents_service/add_agent_responses.go | 4 +- .../agents_service/change_agent_responses.go | 2 +- .../agents_service/get_agent_responses.go | 2 +- .../agents_service/list_agents_responses.go | 2 +- api/inventory/v1/json/v1.json | 10 ++-- .../add_service_responses.go | 2 +- api/management/v1/json/v1.json | 2 +- api/swagger/swagger-dev.json | 12 ++--- api/swagger/swagger.json | 12 ++--- managed/models/agent_helpers.go | 42 ++++++++-------- managed/models/agent_model.go | 48 +++++++++---------- managed/models/agent_model_reform.go | 10 ++-- managed/models/database.go | 2 +- managed/services/agents/mongodb.go | 2 +- managed/services/inventory/agents.go | 20 ++++---- managed/services/management/mongodb.go | 48 +++++++++---------- 21 files changed, 131 insertions(+), 131 deletions(-) diff --git a/admin/commands/base.go b/admin/commands/base.go index 3e1db7e9a07..b9cc197fba5 100644 --- a/admin/commands/base.go +++ b/admin/commands/base.go @@ -196,7 +196,7 @@ func ValidateEnvironmentVariableNames(varNames []string) ([]string, error) { for _, name := range varNames { name = strings.TrimSpace(name) if name == "" { - continue + return nil, fmt.Errorf("environment variable name cannot be empty") } if !validNamePattern.MatchString(name) { diff --git a/api/agent/v1/agent.pb.go b/api/agent/v1/agent.pb.go index de4b6fe6bfb..ce153a9704d 100644 --- a/api/agent/v1/agent.pb.go +++ b/api/agent/v1/agent.pb.go @@ -3778,7 +3778,7 @@ type SetStateRequest_BuiltinAgent struct { Tls bool `protobuf:"varint,8,opt,name=tls,proto3" json:"tls,omitempty"` // TLS certificate wont be verified. TlsSkipVerify bool `protobuf:"varint,9,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3" json:"tls_skip_verify,omitempty"` - // environment variables to be passed to the built-in agent. + // Environment variables to be passed to the built-in agent. Env map[string]string `protobuf:"bytes,10,rep,name=env,proto3" json:"env,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache diff --git a/api/agent/v1/agent.proto b/api/agent/v1/agent.proto index ebc7049d512..14f687f5bfb 100644 --- a/api/agent/v1/agent.proto +++ b/api/agent/v1/agent.proto @@ -82,7 +82,7 @@ message SetStateRequest { bool tls = 8; // TLS certificate wont be verified. bool tls_skip_verify = 9; - // environment variables to be passed to the built-in agent. + // Environment variables to be passed to the built-in agent. map env = 10; } map builtin_agents = 2; diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index 8e43cd96b94..2158bd10006 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -815,9 +815,9 @@ type MongoDBExporter struct { // Metrics resolution for this agent. MetricsResolutions *common.MetricsResolutions `protobuf:"bytes,28,opt,name=metrics_resolutions,json=metricsResolutions,proto3" json:"metrics_resolutions,omitempty"` // Environment variable names passed to the exporter. - SharedEnvironmentVariableNames []string `protobuf:"bytes,29,rep,name=shared_environment_variable_names,json=sharedEnvironmentVariableNames,proto3" json:"shared_environment_variable_names,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + EnvironmentVariableNames []string `protobuf:"bytes,29,rep,name=environment_variable_names,json=environmentVariableNames,proto3" json:"environment_variable_names,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *MongoDBExporter) Reset() { @@ -983,9 +983,9 @@ func (x *MongoDBExporter) GetMetricsResolutions() *common.MetricsResolutions { return nil } -func (x *MongoDBExporter) GetSharedEnvironmentVariableNames() []string { +func (x *MongoDBExporter) GetEnvironmentVariableNames() []string { if x != nil { - return x.SharedEnvironmentVariableNames + return x.EnvironmentVariableNames } return nil } @@ -5620,9 +5620,9 @@ type AddMongoDBExporterParams struct { ExposeExporter bool `protobuf:"varint,20,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` // Environment variable names to pass to the exporter. // Values will be resolved from pmm-agent's environment when starting the exporter. - SharedEnvironmentVariableNames []string `protobuf:"bytes,21,rep,name=shared_environment_variable_names,json=sharedEnvironmentVariableNames,proto3" json:"shared_environment_variable_names,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + EnvironmentVariableNames []string `protobuf:"bytes,21,rep,name=environment_variable_names,json=environmentVariableNames,proto3" json:"environment_variable_names,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AddMongoDBExporterParams) Reset() { @@ -5795,9 +5795,9 @@ func (x *AddMongoDBExporterParams) GetExposeExporter() bool { return false } -func (x *AddMongoDBExporterParams) GetSharedEnvironmentVariableNames() []string { +func (x *AddMongoDBExporterParams) GetEnvironmentVariableNames() []string { if x != nil { - return x.SharedEnvironmentVariableNames + return x.EnvironmentVariableNames } return nil } @@ -8927,7 +8927,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1aA\n" + "\x13ExtraDsnParamsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + - "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xdd\a\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xd0\a\n" + "\x0fMongoDBExporter\x12\x19\n" + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12 \n" + "\fpmm_agent_id\x18\x02 \x01(\tR\n" + @@ -8951,8 +8951,8 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x11process_exec_path\x18\x19 \x01(\tR\x0fprocessExecPath\x123\n" + "\tlog_level\x18\x1a \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12'\n" + "\x0fexpose_exporter\x18\x1b \x01(\bR\x0eexposeExporter\x12K\n" + - "\x13metrics_resolutions\x18\x1c \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutions\x12I\n" + - "!shared_environment_variable_names\x18\x1d \x03(\tR\x1esharedEnvironmentVariableNames\x1a?\n" + + "\x13metrics_resolutions\x18\x1c \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutions\x12<\n" + + "\x1aenvironment_variable_names\x18\x1d \x03(\tR\x18environmentVariableNames\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xf2\x06\n" + @@ -9433,7 +9433,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x13metrics_resolutions\x18\x04 \x01(\v2\x1a.common.MetricsResolutionsR\x12metricsResolutionsB\t\n" + "\a_enableB\x10\n" + "\x0e_custom_labelsB\x16\n" + - "\x14_enable_push_metrics\"\xb4\b\n" + + "\x14_enable_push_metrics\"\xa7\b\n" + "\x18AddMongoDBExporterParams\x12)\n" + "\fpmm_agent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" + "pmmAgentId\x12&\n" + @@ -9457,8 +9457,8 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x11stats_collections\x18\x11 \x03(\tR\x10statsCollections\x12+\n" + "\x11collections_limit\x18\x12 \x01(\x05R\x10collectionsLimit\x123\n" + "\tlog_level\x18\x13 \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12'\n" + - "\x0fexpose_exporter\x18\x14 \x01(\bR\x0eexposeExporter\x12I\n" + - "!shared_environment_variable_names\x18\x15 \x03(\tR\x1esharedEnvironmentVariableNames\x1a?\n" + + "\x0fexpose_exporter\x18\x14 \x01(\bR\x0eexposeExporter\x12<\n" + + "\x1aenvironment_variable_names\x18\x15 \x03(\tR\x18environmentVariableNames\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xae\x02\n" + diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index f1e220d0101..c35232a180d 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -233,7 +233,7 @@ message MongoDBExporter { // Metrics resolution for this agent. common.MetricsResolutions metrics_resolutions = 28; // Environment variable names passed to the exporter. - repeated string shared_environment_variable_names = 29; + repeated string environment_variable_names = 29; } // PostgresExporter runs on Generic or Container Node and exposes PostgreSQL Service metrics. @@ -1034,7 +1034,7 @@ message AddMongoDBExporterParams { bool expose_exporter = 20; // Environment variable names to pass to the exporter. // Values will be resolved from pmm-agent's environment when starting the exporter. - repeated string shared_environment_variable_names = 21; + repeated string environment_variable_names = 21; } message ChangeMongoDBExporterParams { diff --git a/api/inventory/v1/json/client/agents_service/add_agent_responses.go b/api/inventory/v1/json/client/agents_service/add_agent_responses.go index ea9dcbcd6b4..4eaa2c3844b 100644 --- a/api/inventory/v1/json/client/agents_service/add_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/add_agent_responses.go @@ -2929,7 +2929,7 @@ type AddAgentOKBodyMongodbExporter struct { ExposeExporter bool `json:"expose_exporter,omitempty"` // Environment variable names passed to the exporter. - SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + EnvironmentVariableNames []string `json:"environment_variable_names"` // metrics resolutions MetricsResolutions *AddAgentOKBodyMongodbExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` @@ -6711,7 +6711,7 @@ type AddAgentParamsBodyMongodbExporter struct { // Environment variable names to pass to the exporter. // Values will be resolved from pmm-agent's environment when starting the exporter. - SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + EnvironmentVariableNames []string `json:"environment_variable_names"` } // Validate validates this add agent params body mongodb exporter diff --git a/api/inventory/v1/json/client/agents_service/change_agent_responses.go b/api/inventory/v1/json/client/agents_service/change_agent_responses.go index 7ec669b64c3..3c747838fd0 100644 --- a/api/inventory/v1/json/client/agents_service/change_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/change_agent_responses.go @@ -2929,7 +2929,7 @@ type ChangeAgentOKBodyMongodbExporter struct { ExposeExporter bool `json:"expose_exporter,omitempty"` // Environment variable names passed to the exporter. - SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + EnvironmentVariableNames []string `json:"environment_variable_names"` // metrics resolutions MetricsResolutions *ChangeAgentOKBodyMongodbExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` diff --git a/api/inventory/v1/json/client/agents_service/get_agent_responses.go b/api/inventory/v1/json/client/agents_service/get_agent_responses.go index 6c8f9d1d0b3..e63050b3b3f 100644 --- a/api/inventory/v1/json/client/agents_service/get_agent_responses.go +++ b/api/inventory/v1/json/client/agents_service/get_agent_responses.go @@ -2073,7 +2073,7 @@ type GetAgentOKBodyMongodbExporter struct { ExposeExporter bool `json:"expose_exporter,omitempty"` // Environment variable names passed to the exporter. - SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + EnvironmentVariableNames []string `json:"environment_variable_names"` // metrics resolutions MetricsResolutions *GetAgentOKBodyMongodbExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` diff --git a/api/inventory/v1/json/client/agents_service/list_agents_responses.go b/api/inventory/v1/json/client/agents_service/list_agents_responses.go index 71029151e93..6d91e74d9c4 100644 --- a/api/inventory/v1/json/client/agents_service/list_agents_responses.go +++ b/api/inventory/v1/json/client/agents_service/list_agents_responses.go @@ -2235,7 +2235,7 @@ type ListAgentsOKBodyMongodbExporterItems0 struct { ExposeExporter bool `json:"expose_exporter,omitempty"` // Environment variable names passed to the exporter. - SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + EnvironmentVariableNames []string `json:"environment_variable_names"` // metrics resolutions MetricsResolutions *ListAgentsOKBodyMongodbExporterItems0MetricsResolutions `json:"metrics_resolutions,omitempty"` diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index 2ef55e8057d..bc11b8a83d6 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -602,7 +602,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -2426,7 +2426,7 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 19 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", "type": "array", "items": { @@ -3997,7 +3997,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -5943,7 +5943,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -8702,7 +8702,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { diff --git a/api/management/v1/json/client/management_service/add_service_responses.go b/api/management/v1/json/client/management_service/add_service_responses.go index f8eed736801..bb030ec6a04 100644 --- a/api/management/v1/json/client/management_service/add_service_responses.go +++ b/api/management/v1/json/client/management_service/add_service_responses.go @@ -2576,7 +2576,7 @@ type AddServiceOKBodyMongodbMongodbExporter struct { ExposeExporter bool `json:"expose_exporter,omitempty"` // Environment variable names passed to the exporter. - SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + EnvironmentVariableNames []string `json:"environment_variable_names"` // metrics resolutions MetricsResolutions *AddServiceOKBodyMongodbMongodbExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` diff --git a/api/management/v1/json/v1.json b/api/management/v1/json/v1.json index 4657b151f92..354f91f52a1 100644 --- a/api/management/v1/json/v1.json +++ b/api/management/v1/json/v1.json @@ -4457,7 +4457,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 1e36cc55dce..c1035eec4a5 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -5736,7 +5736,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -7560,7 +7560,7 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 19 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", "type": "array", "items": { @@ -9131,7 +9131,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -11077,7 +11077,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -13836,7 +13836,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -23745,7 +23745,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { diff --git a/api/swagger/swagger.json b/api/swagger/swagger.json index 94c0a42fe04..241afa77d5f 100644 --- a/api/swagger/swagger.json +++ b/api/swagger/swagger.json @@ -4778,7 +4778,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -6602,7 +6602,7 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 19 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", "type": "array", "items": { @@ -8173,7 +8173,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -10119,7 +10119,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -12878,7 +12878,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { @@ -22787,7 +22787,7 @@ }, "x-order": 18 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names passed to the exporter.", "type": "array", "items": { diff --git a/managed/models/agent_helpers.go b/managed/models/agent_helpers.go index 5455d7461f1..a84b4868b95 100644 --- a/managed/models/agent_helpers.go +++ b/managed/models/agent_helpers.go @@ -759,26 +759,26 @@ func CreateExternalExporter(q *reform.Querier, params *CreateExternalExporterPar // CreateAgentParams params for add common exporter. type CreateAgentParams struct { - PMMAgentID string - NodeID string - ServiceID string - Username string - Password string - AgentPassword string - CustomLabels map[string]string - SharedEnvironmentVariableNames []string - TLS bool - TLSSkipVerify bool - LogLevel string - Disabled bool - ExporterOptions ExporterOptions - QANOptions QANOptions - AWSOptions AWSOptions - AzureOptions AzureOptions - MongoDBOptions MongoDBOptions - MySQLOptions MySQLOptions - PostgreSQLOptions PostgreSQLOptions - ValkeyOptions ValkeyOptions + PMMAgentID string + NodeID string + ServiceID string + Username string + Password string + AgentPassword string + CustomLabels map[string]string + EnvironmentVariableNames []string + TLS bool + TLSSkipVerify bool + LogLevel string + Disabled bool + ExporterOptions ExporterOptions + QANOptions QANOptions + AWSOptions AWSOptions + AzureOptions AzureOptions + MongoDBOptions MongoDBOptions + MySQLOptions MySQLOptions + PostgreSQLOptions PostgreSQLOptions + ValkeyOptions ValkeyOptions } func compatibleNodeAndAgent(nodeType NodeType, agentType AgentType) bool { @@ -924,7 +924,7 @@ func CreateAgent(q *reform.Querier, agentType AgentType, params *CreateAgentPara if err := row.SetCustomLabels(params.CustomLabels); err != nil { return nil, err } - if err := row.SetSharedEnvironmentVariableNames(params.SharedEnvironmentVariableNames); err != nil { + if err := row.SetEnvironmentVariableNames(params.EnvironmentVariableNames); err != nil { return nil, err } diff --git a/managed/models/agent_model.go b/managed/models/agent_model.go index f99dd745328..609d237bd6a 100644 --- a/managed/models/agent_model.go +++ b/managed/models/agent_model.go @@ -296,16 +296,16 @@ func (c ValkeyOptions) IsEmpty() bool { // //reform:agents type Agent struct { - AgentID string `reform:"agent_id,pk"` - AgentType AgentType `reform:"agent_type"` - RunsOnNodeID *string `reform:"runs_on_node_id"` - ServiceID *string `reform:"service_id"` - NodeID *string `reform:"node_id"` - PMMAgentID *string `reform:"pmm_agent_id"` - CustomLabels []byte `reform:"custom_labels"` - SharedEnvironmentVariables []byte `reform:"shared_environment_variables"` - CreatedAt time.Time `reform:"created_at"` - UpdatedAt time.Time `reform:"updated_at"` + AgentID string `reform:"agent_id,pk"` + AgentType AgentType `reform:"agent_type"` + RunsOnNodeID *string `reform:"runs_on_node_id"` + ServiceID *string `reform:"service_id"` + NodeID *string `reform:"node_id"` + PMMAgentID *string `reform:"pmm_agent_id"` + CustomLabels []byte `reform:"custom_labels"` + EnvironmentVariables []byte `reform:"environment_variables"` + CreatedAt time.Time `reform:"created_at"` + UpdatedAt time.Time `reform:"updated_at"` Disabled bool `reform:"disabled"` Status string `reform:"status"` @@ -340,8 +340,8 @@ func (s *Agent) BeforeInsert() error { if len(s.CustomLabels) == 0 { s.CustomLabels = nil } - if len(s.SharedEnvironmentVariables) == 0 { - s.SharedEnvironmentVariables = nil + if len(s.EnvironmentVariables) == 0 { + s.EnvironmentVariables = nil } if s.Status == "" && s.AgentType != ExternalExporterType && s.AgentType != PMMAgentType { s.Status = AgentStatusUnknown @@ -358,8 +358,8 @@ func (s *Agent) BeforeUpdate() error { if len(s.CustomLabels) == 0 { s.CustomLabels = nil } - if len(s.SharedEnvironmentVariables) == 0 { - s.SharedEnvironmentVariables = nil + if len(s.EnvironmentVariables) == 0 { + s.EnvironmentVariables = nil } if s.Disabled { s.Status = agentStatusDone @@ -374,8 +374,8 @@ func (s *Agent) AfterFind() error { if len(s.CustomLabels) == 0 { s.CustomLabels = nil } - if len(s.SharedEnvironmentVariables) == 0 { - s.SharedEnvironmentVariables = nil + if len(s.EnvironmentVariables) == 0 { + s.EnvironmentVariables = nil } return nil } @@ -390,23 +390,23 @@ func (s *Agent) SetCustomLabels(m map[string]string) error { return setLabels(m, &s.CustomLabels) } -// GetSharedEnvironmentVariableNames decodes shared environment variable names. -func (s *Agent) GetSharedEnvironmentVariableNames() ([]string, error) { - if s.SharedEnvironmentVariables == nil { +// GetEnvironmentVariableNames decodes shared environment variable names. +func (s *Agent) GetEnvironmentVariableNames() ([]string, error) { + if s.EnvironmentVariables == nil { return nil, nil } var names []string - if err := json.Unmarshal(s.SharedEnvironmentVariables, &names); err != nil { + if err := json.Unmarshal(s.EnvironmentVariables, &names); err != nil { return nil, errors.Wrap(err, "failed to unmarshal shared environment variable names") } return names, nil } -// SetSharedEnvironmentVariableNames encodes shared environment variable names. -func (s *Agent) SetSharedEnvironmentVariableNames(names []string) error { +// SetEnvironmentVariableNames encodes shared environment variable names. +func (s *Agent) SetEnvironmentVariableNames(names []string) error { if len(names) == 0 { - s.SharedEnvironmentVariables = nil + s.EnvironmentVariables = nil return nil } @@ -414,7 +414,7 @@ func (s *Agent) SetSharedEnvironmentVariableNames(names []string) error { if err != nil { return errors.Wrap(err, "failed to marshal shared environment variable names") } - s.SharedEnvironmentVariables = b + s.EnvironmentVariables = b return nil } diff --git a/managed/models/agent_model_reform.go b/managed/models/agent_model_reform.go index 1aaafcab5c9..2f6137d7a6d 100644 --- a/managed/models/agent_model_reform.go +++ b/managed/models/agent_model_reform.go @@ -35,7 +35,7 @@ func (v *agentTableType) Columns() []string { "node_id", "pmm_agent_id", "custom_labels", - "shared_environment_variables", + "environment_variables", "created_at", "updated_at", "disabled", @@ -88,7 +88,7 @@ var AgentTable = &agentTableType{ {Name: "NodeID", Type: "*string", Column: "node_id"}, {Name: "PMMAgentID", Type: "*string", Column: "pmm_agent_id"}, {Name: "CustomLabels", Type: "[]uint8", Column: "custom_labels"}, - {Name: "SharedEnvironmentVariables", Type: "[]uint8", Column: "shared_environment_variables"}, + {Name: "EnvironmentVariables", Type: "[]uint8", Column: "environment_variables"}, {Name: "CreatedAt", Type: "time.Time", Column: "created_at"}, {Name: "UpdatedAt", Type: "time.Time", Column: "updated_at"}, {Name: "Disabled", Type: "bool", Column: "disabled"}, @@ -126,7 +126,7 @@ func (s Agent) String() string { res[4] = "NodeID: " + reform.Inspect(s.NodeID, true) res[5] = "PMMAgentID: " + reform.Inspect(s.PMMAgentID, true) res[6] = "CustomLabels: " + reform.Inspect(s.CustomLabels, true) - res[7] = "SharedEnvironmentVariables: " + reform.Inspect(s.SharedEnvironmentVariables, true) + res[7] = "EnvironmentVariables: " + reform.Inspect(s.EnvironmentVariables, true) res[8] = "CreatedAt: " + reform.Inspect(s.CreatedAt, true) res[9] = "UpdatedAt: " + reform.Inspect(s.UpdatedAt, true) res[10] = "Disabled: " + reform.Inspect(s.Disabled, true) @@ -162,7 +162,7 @@ func (s *Agent) Values() []interface{} { s.NodeID, s.PMMAgentID, s.CustomLabels, - s.SharedEnvironmentVariables, + s.EnvironmentVariables, s.CreatedAt, s.UpdatedAt, s.Disabled, @@ -198,7 +198,7 @@ func (s *Agent) Pointers() []interface{} { &s.NodeID, &s.PMMAgentID, &s.CustomLabels, - &s.SharedEnvironmentVariables, + &s.EnvironmentVariables, &s.CreatedAt, &s.UpdatedAt, &s.Disabled, diff --git a/managed/models/database.go b/managed/models/database.go index 1d03b8aac68..16629be96bc 100644 --- a/managed/models/database.go +++ b/managed/models/database.go @@ -1150,7 +1150,7 @@ var databaseSchema = [][]string{ `UPDATE agents SET disabled = true WHERE agent_type = 'qan-postgresql-pgstatements-agent' AND service_id = (SELECT service_id FROM services WHERE service_name = 'pmm-server-postgresql' LIMIT 1);`, }, 113: { - `ALTER TABLE agents ADD COLUMN shared_environment_variables TEXT`, + `ALTER TABLE agents ADD COLUMN environment_variables TEXT`, }, } diff --git a/managed/services/agents/mongodb.go b/managed/services/agents/mongodb.go index 4b78c214154..a4b0d61f036 100644 --- a/managed/services/agents/mongodb.go +++ b/managed/services/agents/mongodb.go @@ -57,7 +57,7 @@ func mongodbExporterConfig(node *models.Node, service *models.Service, exporter sort.Strings(args) database := exporter.MongoDBOptions.AuthenticationDatabase - envVarNames, err := exporter.GetSharedEnvironmentVariableNames() + envVarNames, err := exporter.GetEnvironmentVariableNames() if err != nil { return nil, err } diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index 1428dafe77e..bad2990c622 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -364,16 +364,16 @@ func (as *AgentsService) AddMongoDBExporter(ctx context.Context, p *inventoryv1. var agent *inventoryv1.MongoDBExporter e := as.db.InTransactionContext(ctx, nil, func(tx *reform.TX) error { params := &models.CreateAgentParams{ - PMMAgentID: p.PmmAgentId, - ServiceID: p.ServiceId, - Username: p.Username, - Password: p.Password, - AgentPassword: p.AgentPassword, - CustomLabels: p.CustomLabels, - SharedEnvironmentVariableNames: p.GetSharedEnvironmentVariableNames(), - TLS: p.Tls, - TLSSkipVerify: p.TlsSkipVerify, - MongoDBOptions: models.MongoDBOptionsFromRequest(p), + PMMAgentID: p.PmmAgentId, + ServiceID: p.ServiceId, + Username: p.Username, + Password: p.Password, + AgentPassword: p.AgentPassword, + CustomLabels: p.CustomLabels, + EnvironmentVariableNames: p.GetEnvironmentVariableNames(), + TLS: p.Tls, + TLSSkipVerify: p.TlsSkipVerify, + MongoDBOptions: models.MongoDBOptionsFromRequest(p), ExporterOptions: models.ExporterOptions{ PushMetrics: p.PushMetrics, DisabledCollectors: p.DisableCollectors, diff --git a/managed/services/management/mongodb.go b/managed/services/management/mongodb.go index c4da601e7be..093b6404c95 100644 --- a/managed/services/management/mongodb.go +++ b/managed/services/management/mongodb.go @@ -63,16 +63,16 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad } row, err := models.CreateAgent(tx.Querier, models.MongoDBExporterType, &models.CreateAgentParams{ - PMMAgentID: req.PmmAgentId, - ServiceID: service.ServiceID, - Username: req.Username, - Password: req.Password, - AgentPassword: req.AgentPassword, - SharedEnvironmentVariableNames: req.SharedEnvironmentVariableNames, - TLS: req.Tls, - TLSSkipVerify: req.TlsSkipVerify, - MongoDBOptions: models.MongoDBOptionsFromRequest(req), - LogLevel: services.SpecifyLogLevel(req.LogLevel, inventoryv1.LogLevel_LOG_LEVEL_FATAL), + PMMAgentID: req.PmmAgentId, + ServiceID: service.ServiceID, + Username: req.Username, + Password: req.Password, + AgentPassword: req.AgentPassword, + EnvironmentVariableNames: req.SharedEnvironmentVariableNames, + TLS: req.Tls, + TLSSkipVerify: req.TlsSkipVerify, + MongoDBOptions: models.MongoDBOptionsFromRequest(req), + LogLevel: services.SpecifyLogLevel(req.LogLevel, inventoryv1.LogLevel_LOG_LEVEL_FATAL), ExporterOptions: models.ExporterOptions{ ExposeExporter: req.ExposeExporter, PushMetrics: isPushMode(req.MetricsMode), @@ -101,13 +101,13 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad if req.QanMongodbProfiler { row, err = models.CreateAgent(tx.Querier, models.QANMongoDBProfilerAgentType, &models.CreateAgentParams{ - PMMAgentID: req.PmmAgentId, - ServiceID: service.ServiceID, - Username: req.Username, - Password: req.Password, - SharedEnvironmentVariableNames: req.SharedEnvironmentVariableNames, - TLS: req.Tls, - TLSSkipVerify: req.TlsSkipVerify, + PMMAgentID: req.PmmAgentId, + ServiceID: service.ServiceID, + Username: req.Username, + Password: req.Password, + EnvironmentVariableNames: req.SharedEnvironmentVariableNames, + TLS: req.Tls, + TLSSkipVerify: req.TlsSkipVerify, QANOptions: models.QANOptions{ MaxQueryLength: req.MaxQueryLength, // TODO QueryExamplesDisabled https://jira.percona.com/browse/PMM-7860 @@ -128,13 +128,13 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad if req.QanMongodbMongolog { row, err = models.CreateAgent(tx.Querier, models.QANMongoDBMongologAgentType, &models.CreateAgentParams{ - PMMAgentID: req.PmmAgentId, - ServiceID: service.ServiceID, - Username: req.Username, - Password: req.Password, - SharedEnvironmentVariableNames: req.SharedEnvironmentVariableNames, - TLS: req.Tls, - TLSSkipVerify: req.TlsSkipVerify, + PMMAgentID: req.PmmAgentId, + ServiceID: service.ServiceID, + Username: req.Username, + Password: req.Password, + EnvironmentVariableNames: req.SharedEnvironmentVariableNames, + TLS: req.Tls, + TLSSkipVerify: req.TlsSkipVerify, QANOptions: models.QANOptions{ MaxQueryLength: req.MaxQueryLength, // TODO QueryExamplesDisabled https://jira.percona.com/browse/PMM-7860 From 7760e387e4c63f3bf44b761fa4eb58ac9378c607 Mon Sep 17 00:00:00 2001 From: Michael Okoko Date: Wed, 3 Dec 2025 07:46:57 +0100 Subject: [PATCH 9/9] update field name --- admin/commands/management/add_mongodb.go | 22 +++++++++---------- .../add_service_responses.go | 2 +- api/management/v1/json/v1.json | 2 +- api/management/v1/mongodb.pb.go | 16 +++++++------- api/management/v1/mongodb.proto | 2 +- api/swagger/swagger-dev.json | 2 +- api/swagger/swagger.json | 2 +- managed/services/management/mongodb.go | 6 ++--- 8 files changed, 27 insertions(+), 27 deletions(-) diff --git a/admin/commands/management/add_mongodb.go b/admin/commands/management/add_mongodb.go index 1a31cac2774..37173b4d14c 100644 --- a/admin/commands/management/add_mongodb.go +++ b/admin/commands/management/add_mongodb.go @@ -184,17 +184,17 @@ func (cmd *AddMongoDBCommand) RunCmd() (commands.Result, error) { QANMongodbProfiler: cmd.QuerySource == MongodbQuerySourceProfiler, QANMongodbMongolog: cmd.QuerySource == MongodbQuerySourceMongolog, - CustomLabels: customLabels, - SharedEnvironmentVariableNames: agentVarNames, - SkipConnectionCheck: cmd.SkipConnectionCheck, - MaxQueryLength: cmd.MaxQueryLength, - TLS: cmd.TLS, - TLSSkipVerify: cmd.TLSSkipVerify, - TLSCertificateKey: tlsCertificateKey, - TLSCertificateKeyFilePassword: cmd.TLSCertificateKeyFilePassword, - TLSCa: tlsCa, - AuthenticationMechanism: cmd.AuthenticationMechanism, - AuthenticationDatabase: cmd.AuthenticationDatabase, + CustomLabels: customLabels, + EnvironmentVariableNames: agentVarNames, + SkipConnectionCheck: cmd.SkipConnectionCheck, + MaxQueryLength: cmd.MaxQueryLength, + TLS: cmd.TLS, + TLSSkipVerify: cmd.TLSSkipVerify, + TLSCertificateKey: tlsCertificateKey, + TLSCertificateKeyFilePassword: cmd.TLSCertificateKeyFilePassword, + TLSCa: tlsCa, + AuthenticationMechanism: cmd.AuthenticationMechanism, + AuthenticationDatabase: cmd.AuthenticationDatabase, MetricsMode: cmd.MetricsModeFlags.MetricsMode.EnumValue(), diff --git a/api/management/v1/json/client/management_service/add_service_responses.go b/api/management/v1/json/client/management_service/add_service_responses.go index bb030ec6a04..588a5713dd0 100644 --- a/api/management/v1/json/client/management_service/add_service_responses.go +++ b/api/management/v1/json/client/management_service/add_service_responses.go @@ -9586,7 +9586,7 @@ type AddServiceParamsBodyMongodb struct { // Environment variable names to pass to the exporter. // Values will be resolved from pmm-agent's environment when starting the exporter. - SharedEnvironmentVariableNames []string `json:"shared_environment_variable_names"` + EnvironmentVariableNames []string `json:"environment_variable_names"` // add node AddNode *AddServiceParamsBodyMongodbAddNode `json:"add_node,omitempty"` diff --git a/api/management/v1/json/v1.json b/api/management/v1/json/v1.json index 354f91f52a1..92c3bc78f85 100644 --- a/api/management/v1/json/v1.json +++ b/api/management/v1/json/v1.json @@ -2496,7 +2496,7 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 32 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", "type": "array", "items": { diff --git a/api/management/v1/mongodb.pb.go b/api/management/v1/mongodb.pb.go index 9862c91c1ea..d495e470b9d 100644 --- a/api/management/v1/mongodb.pb.go +++ b/api/management/v1/mongodb.pb.go @@ -106,9 +106,9 @@ type AddMongoDBServiceParams struct { ExposeExporter bool `protobuf:"varint,34,opt,name=expose_exporter,json=exposeExporter,proto3" json:"expose_exporter,omitempty"` // Environment variable names to pass to the exporter. // Values will be resolved from pmm-agent's environment when starting the exporter. - SharedEnvironmentVariableNames []string `protobuf:"bytes,36,rep,name=shared_environment_variable_names,json=sharedEnvironmentVariableNames,proto3" json:"shared_environment_variable_names,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + EnvironmentVariableNames []string `protobuf:"bytes,36,rep,name=environment_variable_names,json=environmentVariableNames,proto3" json:"environment_variable_names,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AddMongoDBServiceParams) Reset() { @@ -372,9 +372,9 @@ func (x *AddMongoDBServiceParams) GetExposeExporter() bool { return false } -func (x *AddMongoDBServiceParams) GetSharedEnvironmentVariableNames() []string { +func (x *AddMongoDBServiceParams) GetEnvironmentVariableNames() []string { if x != nil { - return x.SharedEnvironmentVariableNames + return x.EnvironmentVariableNames } return nil } @@ -451,7 +451,7 @@ var File_management_v1_mongodb_proto protoreflect.FileDescriptor const file_management_v1_mongodb_proto_rawDesc = "" + "\n" + - "\x1bmanagement/v1/mongodb.proto\x12\rmanagement.v1\x1a\x19inventory/v1/agents.proto\x1a\x1cinventory/v1/log_level.proto\x1a\x1binventory/v1/services.proto\x1a\x1bmanagement/v1/metrics.proto\x1a\x18management/v1/node.proto\x1a\x17validate/validate.proto\"\xce\f\n" + + "\x1bmanagement/v1/mongodb.proto\x12\rmanagement.v1\x1a\x19inventory/v1/agents.proto\x1a\x1cinventory/v1/log_level.proto\x1a\x1binventory/v1/services.proto\x1a\x1bmanagement/v1/metrics.proto\x1a\x18management/v1/node.proto\x1a\x17validate/validate.proto\"\xc1\f\n" + "\x17AddMongoDBServiceParams\x12\x17\n" + "\anode_id\x18\x01 \x01(\tR\x06nodeId\x12\x1b\n" + "\tnode_name\x18\x02 \x01(\tR\bnodeName\x127\n" + @@ -487,8 +487,8 @@ const file_management_v1_mongodb_proto_rawDesc = "" + "\x11collections_limit\x18\x1f \x01(\x05R\x10collectionsLimit\x122\n" + "\x15enable_all_collectors\x18 \x01(\bR\x13enableAllCollectors\x123\n" + "\tlog_level\x18! \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12'\n" + - "\x0fexpose_exporter\x18\" \x01(\bR\x0eexposeExporter\x12I\n" + - "!shared_environment_variable_names\x18$ \x03(\tR\x1esharedEnvironmentVariableNames\x1a?\n" + + "\x0fexpose_exporter\x18\" \x01(\bR\x0eexposeExporter\x12<\n" + + "\x1aenvironment_variable_names\x18$ \x03(\tR\x18environmentVariableNames\x1a?\n" + "\x11CustomLabelsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01J\x04\b\b\x10\tR\x17query_examples_disabled\"\xca\x02\n" + diff --git a/api/management/v1/mongodb.proto b/api/management/v1/mongodb.proto index a485bba8922..ca3ef054819 100644 --- a/api/management/v1/mongodb.proto +++ b/api/management/v1/mongodb.proto @@ -94,7 +94,7 @@ message AddMongoDBServiceParams { bool expose_exporter = 34; // Environment variable names to pass to the exporter. // Values will be resolved from pmm-agent's environment when starting the exporter. - repeated string shared_environment_variable_names = 36; + repeated string environment_variable_names = 36; } message MongoDBServiceResult { diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index c1035eec4a5..f6874233188 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -21784,7 +21784,7 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 32 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", "type": "array", "items": { diff --git a/api/swagger/swagger.json b/api/swagger/swagger.json index 241afa77d5f..bb3e3064c75 100644 --- a/api/swagger/swagger.json +++ b/api/swagger/swagger.json @@ -20826,7 +20826,7 @@ "title": "Optionally expose the exporter process on all public interfaces", "x-order": 32 }, - "shared_environment_variable_names": { + "environment_variable_names": { "description": "Environment variable names to pass to the exporter.\nValues will be resolved from pmm-agent's environment when starting the exporter.", "type": "array", "items": { diff --git a/managed/services/management/mongodb.go b/managed/services/management/mongodb.go index 093b6404c95..3dca4b74018 100644 --- a/managed/services/management/mongodb.go +++ b/managed/services/management/mongodb.go @@ -68,7 +68,7 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad Username: req.Username, Password: req.Password, AgentPassword: req.AgentPassword, - EnvironmentVariableNames: req.SharedEnvironmentVariableNames, + EnvironmentVariableNames: req.EnvironmentVariableNames, TLS: req.Tls, TLSSkipVerify: req.TlsSkipVerify, MongoDBOptions: models.MongoDBOptionsFromRequest(req), @@ -105,7 +105,7 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad ServiceID: service.ServiceID, Username: req.Username, Password: req.Password, - EnvironmentVariableNames: req.SharedEnvironmentVariableNames, + EnvironmentVariableNames: req.EnvironmentVariableNames, TLS: req.Tls, TLSSkipVerify: req.TlsSkipVerify, QANOptions: models.QANOptions{ @@ -132,7 +132,7 @@ func (s *ManagementService) addMongoDB(ctx context.Context, req *managementv1.Ad ServiceID: service.ServiceID, Username: req.Username, Password: req.Password, - EnvironmentVariableNames: req.SharedEnvironmentVariableNames, + EnvironmentVariableNames: req.EnvironmentVariableNames, TLS: req.Tls, TLSSkipVerify: req.TlsSkipVerify, QANOptions: models.QANOptions{