diff --git a/admin/commands/inventory/add_agent_rta_mysql.go b/admin/commands/inventory/add_agent_rta_mysql.go new file mode 100644 index 00000000000..b8c6bffa2c3 --- /dev/null +++ b/admin/commands/inventory/add_agent_rta_mysql.go @@ -0,0 +1,122 @@ +// Copyright (C) 2023 Percona LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package inventory + +import ( + "time" + + "github.com/percona/pmm/admin/commands" + "github.com/percona/pmm/admin/pkg/flags" + "github.com/percona/pmm/api/inventory/v1/json/client" + agents "github.com/percona/pmm/api/inventory/v1/json/client/agents_service" +) + +var addAgentRTAMySQLAgentResultT = commands.ParseTemplate(` +Real-Time Analytics MySQL agent added. +Agent ID : {{ .Agent.AgentID }} +PMM-Agent ID : {{ .Agent.PMMAgentID }} +Service ID : {{ .Agent.ServiceID }} +Username : {{ .Agent.Username }} +TLS enabled : {{ .Agent.TLS }} +Skip TLS verification : {{ .Agent.TLSSkipVerify }} + +Disabled : {{ .Agent.Disabled }} +Custom labels : {{ formatCustomLabels .Agent.CustomLabels }} +Collect interval : {{ .Agent.RtaOptions.CollectInterval }} +Log level : {{ formatLogLevel .Agent.LogLevel }} +`) + +type addAgentRTAMySQLAgentResult struct { + Agent *agents.AddAgentOKBodyRtaMysqlAgent `json:"rta_mysql_agent"` +} + +func (res *addAgentRTAMySQLAgentResult) Result() {} + +func (res *addAgentRTAMySQLAgentResult) String() string { + return commands.RenderTemplate(addAgentRTAMySQLAgentResultT, res) +} + +// AddAgentRTAMySQLAgentCommand is used by Kong for CLI flags and commands. +type AddAgentRTAMySQLAgentCommand struct { + flags.LogLevelFatalFlags + + PMMAgentID string `arg:"" help:"The pmm-agent identifier which runs this instance"` + ServiceID string `arg:"" help:"Service identifier"` + Username string `arg:"" optional:"" help:"MySQL username for getting queries data"` + Password string `help:"MySQL password for getting queries data"` + CustomLabels map[string]string `mapsep:"," help:"Custom user-assigned labels"` + SkipConnectionCheck bool `help:"Skip connection check"` + TLS bool `help:"Use TLS to connect to the database"` + TLSSkipVerify bool `help:"Skip TLS certificate verification"` + TLSCaFile string `help:"Path to certificate authority file"` + TLSCertFile string `help:"Path to client certificate file"` + TLSKeyFile string `help:"Path to client key file"` + CollectInterval *time.Duration `placeholder:"DURATION" help:"Query collect interval (default: server-defined 2s)"` +} + +// RunCmd executes the AddAgentRTAMySQLAgentCommand and returns the result. +func (cmd *AddAgentRTAMySQLAgentCommand) RunCmd() (commands.Result, error) { + customLabels := commands.ParseKeyValuePair(&cmd.CustomLabels) + + tlsCa, err := commands.ReadFile(cmd.TLSCaFile) + if err != nil { + return nil, err + } + + tlsCert, err := commands.ReadFile(cmd.TLSCertFile) + if err != nil { + return nil, err + } + + tlsKey, err := commands.ReadFile(cmd.TLSKeyFile) + if err != nil { + return nil, err + } + + params := &agents.AddAgentParams{ + Body: agents.AddAgentBody{ + RtaMysqlAgent: &agents.AddAgentParamsBodyRtaMysqlAgent{ + PMMAgentID: cmd.PMMAgentID, + ServiceID: cmd.ServiceID, + Username: cmd.Username, + Password: cmd.Password, + CustomLabels: *customLabels, + SkipConnectionCheck: cmd.SkipConnectionCheck, + TLS: cmd.TLS, + TLSSkipVerify: cmd.TLSSkipVerify, + TLSCa: tlsCa, + TLSCert: tlsCert, + TLSKey: tlsKey, + LogLevel: cmd.LogLevel.EnumValue(), + }, + }, + Context: commands.Ctx, + } + + if cmd.CollectInterval != nil { + params.Body.RtaMysqlAgent.RtaOptions = &agents.AddAgentParamsBodyRtaMysqlAgentRtaOptions{ + CollectInterval: cmd.CollectInterval.String(), + } + } + + resp, err := client.Default.AgentsService.AddAgent(params) + if err != nil { + return nil, err + } + + return &addAgentRTAMySQLAgentResult{ + Agent: resp.Payload.RtaMysqlAgent, + }, nil +} diff --git a/admin/commands/inventory/change_agent_rta_mysql.go b/admin/commands/inventory/change_agent_rta_mysql.go new file mode 100644 index 00000000000..f2c7809cf84 --- /dev/null +++ b/admin/commands/inventory/change_agent_rta_mysql.go @@ -0,0 +1,226 @@ +// Copyright (C) 2023 Percona LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package inventory + +import ( + "fmt" + "time" + + "github.com/percona/pmm/admin/commands" + "github.com/percona/pmm/admin/pkg/flags" + "github.com/percona/pmm/api/inventory/v1/json/client" + agents "github.com/percona/pmm/api/inventory/v1/json/client/agents_service" +) + +var changeAgentRTAMySQLAgentResultT = commands.ParseTemplate(` +Real-Time Analytics MySQL agent configuration updated. +Agent ID : {{ .Agent.AgentID }} +PMM-Agent ID : {{ .Agent.PMMAgentID }} +Service ID : {{ .Agent.ServiceID }} +Username : {{ .Agent.Username }} +TLS enabled : {{ .Agent.TLS }} +Skip TLS verification : {{ .Agent.TLSSkipVerify }} + +Disabled : {{ .Agent.Disabled }} +Custom labels : {{ formatCustomLabels .Agent.CustomLabels }} +Collect interval : {{ .Agent.RtaOptions.CollectInterval }} +Log level : {{ formatLogLevel .Agent.LogLevel }} + +{{- if .Changes}} +Configuration changes applied: +{{- range .Changes}} + - {{ . }} +{{- end}} +{{- end}} +`) + +type changeAgentRTAMySQLAgentResult struct { + Agent *agents.ChangeAgentOKBodyRtaMysqlAgent `json:"rta_mysql_agent"` + Changes []string `json:"changes,omitempty"` +} + +func (res *changeAgentRTAMySQLAgentResult) Result() {} + +func (res *changeAgentRTAMySQLAgentResult) String() string { + return commands.RenderTemplate(changeAgentRTAMySQLAgentResultT, res) +} + +// ChangeAgentRTAMySQLAgentCommand is used by Kong for CLI flags and commands. +type ChangeAgentRTAMySQLAgentCommand struct { + // Embedded flags + flags.LogLevelFatalChangeFlags + + AgentID string `arg:"" help:"Real-Time Analytics MySQL Agent ID"` + + // NOTE: Only provided flags will be changed, others will remain unchanged + + // Basic options + Enable *bool `help:"Enable or disable the agent"` + Username *string `help:"MySQL username for getting queries data"` + Password *string `help:"MySQL password for getting queries data"` + + // TLS options + TLS *bool `help:"Use TLS to connect to the database"` + TLSSkipVerify *bool `help:"Skip TLS certificate verification"` + TLSCaFile *string `help:"Path to certificate authority file"` + TLSCertFile *string `help:"Path to client certificate file"` + TLSKeyFile *string `help:"Path to client key file"` + + // RTA specific options + CollectInterval *time.Duration `placeholder:"DURATION" help:"Query collect interval (default: server-defined 2s)"` + + // Custom labels + CustomLabels *map[string]string `mapsep:"," help:"Custom user-assigned labels"` + + SkipConnectionCheck *bool `help:"Skip connection check"` +} + +// readFlagFile reads the file behind an optional CLI flag; a nil path means +// the flag was not provided. +func readFlagFile(path *string, what string) (*string, error) { + if path == nil { + return nil, nil //nolint:nilnil + } + + content, err := commands.ReadFile(*path) + if err != nil { + return nil, fmt.Errorf("failed to read %s: %w", what, err) + } + + return &content, nil +} + +// RunCmd executes the ChangeAgentRTAMySQLAgentCommand and returns the result. +func (cmd *ChangeAgentRTAMySQLAgentCommand) RunCmd() (commands.Result, error) { + // Parse custom labels if provided + customLabels := commands.ParseKeyValuePair(cmd.CustomLabels) + + // Read TLS files if provided + tlsCa, err := readFlagFile(cmd.TLSCaFile, "TLS CA file") + if err != nil { + return nil, err + } + + tlsCert, err := readFlagFile(cmd.TLSCertFile, "TLS certificate file") + if err != nil { + return nil, err + } + + tlsKey, err := readFlagFile(cmd.TLSKeyFile, "TLS key file") + if err != nil { + return nil, err + } + + body := &agents.ChangeAgentParamsBodyRtaMysqlAgent{ + Enable: cmd.Enable, + Username: cmd.Username, + Password: cmd.Password, + TLS: cmd.TLS, + TLSSkipVerify: cmd.TLSSkipVerify, + TLSCa: tlsCa, + TLSCert: tlsCert, + TLSKey: tlsKey, + LogLevel: convertLogLevelPtr(cmd.LogLevel), + SkipConnectionCheck: cmd.SkipConnectionCheck, + } + + if customLabels != nil { + body.CustomLabels = &agents.ChangeAgentParamsBodyRtaMysqlAgentCustomLabels{ + Values: *customLabels, + } + } + + if cmd.CollectInterval != nil { + body.RtaOptions = &agents.ChangeAgentParamsBodyRtaMysqlAgentRtaOptions{ + CollectInterval: cmd.CollectInterval.String(), + } + } + + params := &agents.ChangeAgentParams{ + AgentID: cmd.AgentID, + Body: agents.ChangeAgentBody{ + RtaMysqlAgent: body, + }, + Context: commands.Ctx, + } + + resp, err := client.Default.AgentsService.ChangeAgent(params) + if err != nil { + return nil, err + } + + return &changeAgentRTAMySQLAgentResult{ + Agent: resp.Payload.RtaMysqlAgent, + Changes: cmd.describeChanges(customLabels), + }, nil +} + +// describeChanges lists the modifications applied by this command invocation. +func (cmd *ChangeAgentRTAMySQLAgentCommand) describeChanges(customLabels *map[string]string) []string { + var changes []string + + if cmd.Enable != nil { + if *cmd.Enable { + changes = append(changes, "enabled agent") + } else { + changes = append(changes, "disabled agent") + } + } + if cmd.Username != nil { + changes = append(changes, "updated username") + } + if cmd.Password != nil { + changes = append(changes, "updated password") + } + if cmd.TLS != nil { + if *cmd.TLS { + changes = append(changes, "enabled TLS") + } else { + changes = append(changes, "disabled TLS") + } + } + if cmd.TLSSkipVerify != nil { + if *cmd.TLSSkipVerify { + changes = append(changes, "enabled TLS skip verification") + } else { + changes = append(changes, "disabled TLS skip verification") + } + } + if cmd.TLSCaFile != nil { + changes = append(changes, "updated TLS CA certificate") + } + if cmd.TLSCertFile != nil { + changes = append(changes, "updated TLS certificate") + } + if cmd.TLSKeyFile != nil { + changes = append(changes, "updated TLS key") + } + if cmd.LogLevel != nil { + changes = append(changes, fmt.Sprintf("changed log level to %s", *cmd.LogLevel)) + } + if customLabels != nil { + if len(*customLabels) != 0 { + changes = append(changes, "updated custom labels") + } else { + changes = append(changes, "custom labels are removed") + } + } + + if cmd.CollectInterval != nil { + changes = append(changes, fmt.Sprintf("changed collect interval to %s", *cmd.CollectInterval)) + } + + return changes +} diff --git a/admin/commands/inventory/inventory.go b/admin/commands/inventory/inventory.go index 850607aa279..ad8a219019f 100644 --- a/admin/commands/inventory/inventory.go +++ b/admin/commands/inventory/inventory.go @@ -64,6 +64,7 @@ type AddAgentCommand struct { RDSExporter AddAgentRDSExporterCommand `cmd:"" help:"Add rds_exporter to inventory"` RTAMongoDBAgent AddAgentRTAMongoDBAgentCommand `cmd:"" name:"rta-mongodb-agent" help:"Add Real-Time Analytics MongoDB agent to inventory"` + RTAMySQLAgent AddAgentRTAMySQLAgentCommand `cmd:"" name:"rta-mysql-agent" help:"Add Real-Time Analytics MySQL agent to inventory"` } // AddNodeCommand is used by Kong for CLI flags and commands. @@ -119,6 +120,7 @@ type ChangeAgentCommand struct { QANPostgreSQLPgStatementsAgent ChangeAgentQANPostgreSQLPgStatementsAgentCommand `cmd:"" name:"qan-postgresql-pgstatements-agent" help:"Change QAN PostgreSQL pgstatements agent configuration (only passed flags will be changed)"` QANPostgreSQLPgStatMonitorAgent ChangeAgentQANPostgreSQLPgStatMonitorAgentCommand `cmd:"" name:"qan-postgresql-pgstatmonitor-agent" help:"Change QAN PostgreSQL pgstatmonitor agent configuration (only passed flags will be changed)"` RTAMongoDBAgent ChangeAgentRTAMongoDBAgentCommand `cmd:"" name:"rta-mongodb-agent" help:"Change Real-Time Analytics MongoDB agent configuration (only passed flags will be changed)"` + RTAMySQLAgent ChangeAgentRTAMySQLAgentCommand `cmd:"" name:"rta-mysql-agent" help:"Change Real-Time Analytics MySQL agent configuration (only passed flags will be changed)"` } // formatTypeValue checks acceptable type value and variations contains input and returns type value. diff --git a/admin/commands/inventory/list_agents.go b/admin/commands/inventory/list_agents.go index 3c87e32b005..37f8a652437 100644 --- a/admin/commands/inventory/list_agents.go +++ b/admin/commands/inventory/list_agents.go @@ -53,6 +53,7 @@ var acceptableAgentTypes = map[string][]string{ types.AgentTypeQANPostgreSQLPgStatMonitorAgent: {types.AgentTypeName(types.AgentTypeQANPostgreSQLPgStatMonitorAgent), "qan-postgresql-pgstatmonitor-agent"}, types.AgentTypeRDSExporter: {types.AgentTypeName(types.AgentTypeRDSExporter), "rds-exporter"}, types.AgentTypeRTAMongoDBAgent: {types.AgentTypeName(types.AgentTypeRTAMongoDBAgent), "rta-mongodb-agent"}, + types.AgentTypeRTAMySQLAgent: {types.AgentTypeName(types.AgentTypeRTAMySQLAgent), "rta-mysql-agent"}, } type listResultAgent struct { @@ -141,7 +142,8 @@ func (cmd *ListAgentsCommand) RunCmd() (commands.Result, error) { len(agentsRes.Payload.QANPostgresqlPgstatementsAgent)+ len(agentsRes.Payload.QANPostgresqlPgstatmonitorAgent)+ len(agentsRes.Payload.ExternalExporter)+ - len(agentsRes.Payload.RtaMongodbAgent), + len(agentsRes.Payload.RtaMongodbAgent)+ + len(agentsRes.Payload.RtaMysqlAgent), ) for _, a := range agentsRes.Payload.PMMAgent { status := "disconnected" @@ -309,6 +311,16 @@ func (cmd *ListAgentsCommand) RunCmd() (commands.Result, error) { Disabled: a.Disabled, }) } + for _, a := range agentsRes.Payload.RtaMysqlAgent { + agentsList = append(agentsList, listResultAgent{ + AgentType: types.AgentTypeRTAMySQLAgent, + AgentID: a.AgentID, + PMMAgentID: a.PMMAgentID, + ServiceID: a.ServiceID, + Status: getAgentStatus(a.Status), + Disabled: a.Disabled, + }) + } return &listAgentsResult{ Agents: agentsList, diff --git a/agent/agents/mysql/realtimeanalytics/connection.go b/agent/agents/mysql/realtimeanalytics/connection.go new file mode 100644 index 00000000000..be46a276521 --- /dev/null +++ b/agent/agents/mysql/realtimeanalytics/connection.go @@ -0,0 +1,69 @@ +// Copyright (C) 2023 Percona LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package realtimeanalytics + +import ( + "context" + "database/sql" + "time" + + "github.com/go-sql-driver/mysql" + + "github.com/percona/pmm/agent/tlshelpers" +) + +const ( + // Timeout for MySQL queries and connection. + mysqlQueryTimeout = 5 * time.Second +) + +// createConnection opens a connection to MySQL and verifies it with a ping. +// It returns the *sql.DB, the instance address(host:port) parsed from the DSN +// and an error if connection can't be established. +func createConnection(ctx context.Context, dsn string, files map[string]string, tlsSkipVerify bool) (*sql.DB, string, error) { + if files != nil { + err := tlshelpers.RegisterMySQLCerts(files, tlsSkipVerify) + if err != nil { + return nil, "", err + } + } + + cfg, err := mysql.ParseDSN(dsn) + if err != nil { + return nil, "", err + } + + db, err := sql.Open("mysql", dsn) + if err != nil { + return nil, "", err + } + + // The collector runs one query per interval, so a single long-lived connection + // is kept open and reused across collection cycles (no maximum lifetime). + db.SetMaxIdleConns(1) + db.SetMaxOpenConns(1) + db.SetConnMaxLifetime(0) + + pingCtx, cancel := context.WithTimeout(ctx, mysqlQueryTimeout) + defer cancel() + + err = db.PingContext(pingCtx) + if err != nil { + _ = db.Close() + return nil, "", err + } + + return db, cfg.Addr, nil +} diff --git a/agent/agents/mysql/realtimeanalytics/mysql.go b/agent/agents/mysql/realtimeanalytics/mysql.go new file mode 100644 index 00000000000..cf07a3827b2 --- /dev/null +++ b/agent/agents/mysql/realtimeanalytics/mysql.go @@ -0,0 +1,484 @@ +// Copyright (C) 2023 Percona LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package realtimeanalytics runs built-in Real-Time Analytics Agent for MySQL. +package realtimeanalytics + +import ( + "context" + "database/sql" + "encoding/json" + "errors" + "fmt" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/prometheus/client_golang/prometheus" + "github.com/sirupsen/logrus" + "google.golang.org/protobuf/types/known/durationpb" + "google.golang.org/protobuf/types/known/timestamppb" + + "github.com/percona/pmm/agent/agents" + mysqlversion "github.com/percona/pmm/agent/utils/version" + agentv1 "github.com/percona/pmm/api/agent/v1" + inventoryv1 "github.com/percona/pmm/api/inventory/v1" + rtav1 "github.com/percona/pmm/api/realtimeanalytics/v1" +) + +const ( + changesBufferSize = 10 + // Number of picoseconds per nanosecond, used to convert MySQL picosecond latencies into Go durations. + picosecondsPerNanosecond = 1000 + // Interval used when the server sends none. A non-positive duration makes + // time.NewTicker panic, and a panic here takes down the whole pmm-agent, so a + // missing interval degrades to the server's own default instead. + defaultCollectInterval = 2 * time.Second +) + +// currentQueriesSQL fetches currently running queries from the sys schema. +// The sys.x$processlist view is the machine-readable (raw) version of sys.processlist +// (https://dev.mysql.com/doc/refman/8.4/en/sys-processlist.html); it exposes +// the same columns but with unformatted numeric latencies. +// We select all columns so the complete row is preserved in the raw payload +// (mirroring how the MongoDB RTA agent dumps the whole currentOp document), and +// exclude background threads, idle ("Sleep") connections, the RTA agent's own +// connection and rows without a current statement. +const currentQueriesSQL = ` +SELECT * +FROM sys.x$processlist +WHERE conn_id IS NOT NULL + AND conn_id <> CONNECTION_ID() + AND current_statement IS NOT NULL + AND command NOT IN ('Sleep', 'Daemon')` + +// MySQLRTA extracts Real-Time Analytics data (currently running DB queries) from MySQL. +type MySQLRTA struct { + agentID string + serviceID string + serviceName string + l *logrus.Entry + + // Channel to obtain data from this agent. + changes chan agents.Change + + // dsn to connect to MySQL. + dsn string + // files holds TLS certificates to register for the MySQL connection. + files map[string]string + // tlsSkipVerify controls TLS certificate validation. + tlsSkipVerify bool + // collectInterval is how often to collect data from MySQL. + collectInterval time.Duration + + // db is the open connection to MySQL, kept between collection cycles. + db *sql.DB + // dbInstanceAddress is the monitored instance address parsed from the DSN. + dbInstanceAddress string +} + +// Params represent Agent parameters. +type Params struct { + AgentID string + DSN string // DSN to connect to MySQL. + ServiceID string // ServiceID shall be set in RTA queries to link them to the service. + ServiceName string // ServiceName shall be set in RTA queries to link them to the service. + CollectInterval time.Duration // CollectInterval is how often to collect data from MySQL. + TextFiles *agentv1.TextFiles // TLS certificate files (optional). + TLSSkipVerify bool // Skip TLS certificate validation. +} + +// New creates new MySQLRTA service. +// The DSN is expected to be already rendered by the caller (the supervisor renders +// TLS file templates before constructing the agent). +func New(params *Params, l *logrus.Entry) *MySQLRTA { + var files map[string]string + if params.TextFiles != nil { + files = params.TextFiles.Files + } + + collectInterval := params.CollectInterval + if collectInterval <= 0 { + l.Warnf("No collect interval set for Real-Time Analytics, falling back to %s", defaultCollectInterval) + collectInterval = defaultCollectInterval + } + + return &MySQLRTA{ + agentID: params.AgentID, + serviceID: params.ServiceID, + serviceName: params.ServiceName, + dsn: params.DSN, + files: files, + tlsSkipVerify: params.TLSSkipVerify, + collectInterval: collectInterval, + l: l, + changes: make(chan agents.Change, changesBufferSize), + } +} + +// Run extracts currently running DB queries from MySQL +// and sends it to the channel until ctx is canceled. +func (m *MySQLRTA) Run(ctx context.Context) { + m.l.Info("Starting MySQL RTA agent") + + m.changes <- agents.Change{Status: inventoryv1.AgentStatus_AGENT_STATUS_STARTING} + + // collectors tracks in-flight collection goroutines so we can wait for them + // before closing m.changes, avoiding a "send on closed channel" race on shutdown. + var collectors sync.WaitGroup + + // collecting keeps one collection in flight at a time. Each collection runs on + // its own pooled connection and the query only excludes its own conn_id, so two + // overlapping collections would report each other's processlist query as a + // running query. + var collecting atomic.Bool + + // terminalStatus is reported just before the changes channel is closed. It stays + // DONE for a normal stop and becomes INITIALIZATION_ERROR when the agent cannot + // start (connection failure or unmet prerequisites), so the session surfaces a + // clear error instead of sitting in RUNNING with no data. + terminalStatus := inventoryv1.AgentStatus_AGENT_STATUS_DONE + defer func() { + collectors.Wait() + + m.changes <- agents.Change{Status: terminalStatus} + + close(m.changes) + }() + + db, addr, err := createConnection(ctx, m.dsn, m.files, m.tlsSkipVerify) + if err != nil { + // A shutdown during initialization is a normal stop, not an initialization failure. + if ctx.Err() != nil { + return + } + m.l.Errorf("Can't run Real-Time Analytics agent, reason: %v", err) + terminalStatus = inventoryv1.AgentStatus_AGENT_STATUS_INITIALIZATION_ERROR + return + } + + defer func() { + _ = db.Close() + }() + + m.db = db + m.dbInstanceAddress = addr + + // Verify the instance can actually serve RTA (not MariaDB, performance_schema on, + // sys.x$processlist readable) before reporting RUNNING. + err = m.checkPrerequisites(ctx) + if err != nil { + // A shutdown during initialization is a normal stop, not an initialization failure. + if ctx.Err() != nil { + return + } + m.l.Errorf("Real-Time Analytics is not supported for this instance: %v", err) + terminalStatus = inventoryv1.AgentStatus_AGENT_STATUS_INITIALIZATION_ERROR + return + } + + m.changes <- agents.Change{Status: inventoryv1.AgentStatus_AGENT_STATUS_RUNNING} + + ticker := time.NewTicker(m.collectInterval) + defer ticker.Stop() + + for { + select { + case <-ctx.Done(): + m.l.Info("Stopping MySQL RTA agent") + + m.changes <- agents.Change{Status: inventoryv1.AgentStatus_AGENT_STATUS_STOPPING} + // m.changes channel will be closed in defer, so we don't need to close it here, just exit the function. + return + case <-ticker.C: + // Skip the tick when the previous collection has not finished; the next + // one is only a collect interval away and this is a live view. + if !collecting.CompareAndSwap(false, true) { + m.l.Debug("Previous processlist collection still running, skipping this tick") + continue + } + + // Run collection in a separate goroutine to avoid blocking the main loop + // and allow timely execution of next ticks in case collection takes longer + // than the collect interval. + collectors.Add(1) + go func(curCtx context.Context) { + defer collectors.Done() + defer collecting.Store(false) + + rtaQueryBucket, err := m.collectProcessList(curCtx) + if err != nil { + m.l.Warnf("processlist collection failed: %v", err) + return + } + + if len(rtaQueryBucket) == 0 { + return + } + + // Send and cancellation are selected together: the buffer can be full + // while nothing drains it during shutdown, and a blocked send would + // keep Run from ever returning. + select { + case <-curCtx.Done(): + case m.changes <- agents.Change{RTAQueriesBucket: rtaQueryBucket}: + } + }(ctx) + } + } +} + +// checkPrerequisites verifies that the target instance can serve Real-Time Analytics: +// - it must be Oracle MySQL or Percona Server. MariaDB's performance_schema/sys schema +// differ (no sys.x$processlist with these columns) and are not supported. +// - performance_schema must be enabled (sys.x$processlist is backed by it). +// - sys.x$processlist must be readable by the monitoring user (the view is +// SQL SECURITY INVOKER, so it requires SELECT on the underlying performance_schema tables). +// +// It returns a descriptive error otherwise, so the session reports a clear status +// instead of silently collecting nothing every cycle. +func (m *MySQLRTA) checkPrerequisites(ctx context.Context) error { + checkCtx, cancel := context.WithTimeout(ctx, mysqlQueryTimeout) + defer cancel() + + _, vendor, err := mysqlversion.GetMySQLVersion(checkCtx, m.db) + if err != nil { + return fmt.Errorf("failed to detect MySQL version: %w", err) + } + if vendor == mysqlversion.MariaDBVendor { + return errors.New("MariaDB is not supported by MySQL Real-Time Analytics") + } + + var performanceSchema sql.NullInt64 + err = m.db.QueryRowContext(checkCtx, "SELECT @@performance_schema").Scan(&performanceSchema) + if err != nil { + return fmt.Errorf("failed to read @@performance_schema: %w", err) + } + if performanceSchema.Int64 != 1 { + return errors.New("performance_schema is disabled; it is required for Real-Time Analytics") + } + + // Probe the view that the collector uses so missing schema or privileges fail fast. + rows, err := m.db.QueryContext(checkCtx, "SELECT 1 FROM sys.x$processlist LIMIT 1") + if err != nil { + return fmt.Errorf("sys.x$processlist is not accessible: %w", err) + } + defer rows.Close() //nolint:errcheck + + return rows.Err() +} + +// collectProcessList queries sys.x$processlist and parses the result into a slice of *QueryData. +func (m *MySQLRTA) collectProcessList(ctx context.Context) ([]*rtav1.QueryData, error) { + queryCtx, cancel := context.WithTimeout(ctx, mysqlQueryTimeout) + defer cancel() + + // An empty processlist is not an error: QueryContext does not return sql.ErrNoRows, + // it simply yields no rows below, so we only get here on a real query failure. + rows, err := m.db.QueryContext(queryCtx, currentQueriesSQL) + if err != nil { + return nil, fmt.Errorf("failed to query sys.x$processlist: %w", err) + } + defer func() { + _ = rows.Close() + }() + + columns, err := rows.Columns() + if err != nil { + return nil, fmt.Errorf("failed to read processlist columns: %w", err) + } + + collectTime := timestamppb.New(time.Now()) + + var results []*rtav1.QueryData + for rows.Next() { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + + row, err := scanRow(rows, columns) + if err != nil { + m.l.Warnf("Failed to scan processlist row: %v", err) + continue + } + + queryData := m.buildQueryData(row) + queryData.QueryCollectTime = collectTime + + results = append(results, queryData) + } + + err = rows.Err() + if err != nil { + m.l.Warnf("Failed to iterate processlist rows: %v", err) + return nil, err + } + + return results, nil +} + +// scanRow scans a single result row into a map keyed by column name. Values are +// coerced to int64/float64 when numeric and to nil for SQL NULLs, so the raw +// payload is human-readable JSON with native types. +func scanRow(rows *sql.Rows, columns []string) (map[string]any, error) { + rawValues := make([]sql.RawBytes, len(columns)) + scanArgs := make([]any, len(columns)) + for i := range rawValues { + scanArgs[i] = &rawValues[i] + } + + err := rows.Scan(scanArgs...) + if err != nil { + return nil, err + } + + row := make(map[string]any, len(columns)) + for i, col := range columns { + row[col] = coerceValue(rawValues[i]) + } + + return row, nil +} + +// coerceValue converts a raw column value into nil (NULL), int64, float64 or string +// so the raw payload renders as human-readable JSON with native types. +// +// It is tuned for the sys.x$processlist columns, whose numeric columns are plain +// integers/decimals. It will reinterpret any numeric-looking string as a number, so +// it is not a general-purpose converter: zero-padded identifiers or values wider than +// int64 would lose their original textual form. None of the processlist columns have +// that shape, but keep this in mind before reusing the helper elsewhere. +func coerceValue(b sql.RawBytes) any { + if b == nil { + return nil + } + + s := string(b) + + i, intErr := strconv.ParseInt(s, 10, 64) + if intErr == nil { + return i + } + + f, floatErr := strconv.ParseFloat(s, 64) + if floatErr == nil { + return f + } + + return s +} + +// buildQueryData converts a single sys.x$processlist row into a *QueryData. +// The complete row is preserved in QueryRawJson; a curated subset is exposed +// via the MySQL payload for the details view. +func (m *MySQLRTA) buildQueryData(row map[string]any) *rtav1.QueryData { + execDuration := durationpb.New(time.Duration(mapFloat(row, "statement_latency")/picosecondsPerNanosecond) * time.Nanosecond) + + mysqlPayload := &rtav1.QueryMySQLData{ + DbInstanceAddress: m.dbInstanceAddress, + ProgramName: mapString(row, "program_name"), + DatabaseName: mapString(row, "db"), + Command: mapString(row, "command"), + State: mapString(row, "state"), + Username: mapString(row, "user"), + RowsExamined: mapInt(row, "rows_examined"), + RowsSent: mapInt(row, "rows_sent"), + FullScan: strings.EqualFold(mapString(row, "full_scan"), "YES"), + } + + rawJSON, err := json.MarshalIndent(row, "", " ") + if err != nil { + m.l.Warnf("Failed to marshal raw query data: %v", err) + } + + return &rtav1.QueryData{ + ServiceId: m.serviceID, + ServiceName: m.serviceName, + QueryId: mapString(row, "conn_id"), + QueryText: mapString(row, "current_statement"), + QueryRawJson: string(rawJSON), + QueryExecutionDuration: execDuration, + Payload: &rtav1.QueryData_MySqlPayload{ + MySqlPayload: mysqlPayload, + }, + } +} + +// mapString reads a column from the row as a string regardless of its scanned type. +func mapString(row map[string]any, key string) string { + switch v := row[key].(type) { + case string: + return v + case int64: + return strconv.FormatInt(v, 10) + case float64: + return strconv.FormatFloat(v, 'f', -1, 64) + default: + return "" + } +} + +// mapInt reads a column from the row as an int64. +func mapInt(row map[string]any, key string) int64 { + switch v := row[key].(type) { + case int64: + return v + case float64: + return int64(v) + case string: + i, _ := strconv.ParseInt(v, 10, 64) + return i + default: + return 0 + } +} + +// mapFloat reads a column from the row as a float64. +func mapFloat(row map[string]any, key string) float64 { + switch v := row[key].(type) { + case float64: + return v + case int64: + return float64(v) + case string: + f, _ := strconv.ParseFloat(v, 64) + return f + default: + return 0 + } +} + +// Changes returns channel that should be read until it is closed. +func (m *MySQLRTA) Changes() <-chan agents.Change { + return m.changes +} + +// Describe implements prometheus.Collector. +func (m *MySQLRTA) Describe(_ chan<- *prometheus.Desc) { + // This method is needed to satisfy interface. +} + +// Collect implement prometheus.Collector. +func (m *MySQLRTA) Collect(_ chan<- prometheus.Metric) { + // This method is needed to satisfy interface. +} + +// check interfaces. +var ( + _ prometheus.Collector = (*MySQLRTA)(nil) +) diff --git a/agent/agents/mysql/realtimeanalytics/mysql_test.go b/agent/agents/mysql/realtimeanalytics/mysql_test.go new file mode 100644 index 00000000000..98d1274b02e --- /dev/null +++ b/agent/agents/mysql/realtimeanalytics/mysql_test.go @@ -0,0 +1,156 @@ +// Copyright (C) 2023 Percona LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package realtimeanalytics + +import ( + "database/sql" + "encoding/json" + "testing" + "time" + + "github.com/sirupsen/logrus" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestCoerceValue(t *testing.T) { + t.Parallel() + + assert.Nil(t, coerceValue(nil), "NULL must become nil") + assert.Equal(t, int64(123), coerceValue(sql.RawBytes("123"))) + assert.Equal(t, int64(-5), coerceValue(sql.RawBytes("-5"))) + assert.Equal(t, int64(2648724198000), coerceValue(sql.RawBytes("2648724198000"))) + assert.InEpsilon(t, 1.5, coerceValue(sql.RawBytes("1.5")), 0.0001) + assert.Equal(t, "COMMIT", coerceValue(sql.RawBytes("COMMIT"))) + assert.Equal(t, "ACTIVE", coerceValue(sql.RawBytes("ACTIVE"))) + // non-nil empty value stays an empty string (not nil) + emptyValue := coerceValue(sql.RawBytes("")) + assert.NotNil(t, emptyValue) + assert.Empty(t, emptyValue) +} + +func TestMapHelpers(t *testing.T) { + t.Parallel() + + row := map[string]any{ + "i": int64(7), + "f": 2.5, + "s": "text", + "numStr": "9", + "floatStr": "3.5", + "null": nil, + } + + assert.Equal(t, "7", mapString(row, "i")) + assert.Equal(t, "text", mapString(row, "s")) + assert.Empty(t, mapString(row, "missing")) + assert.Empty(t, mapString(row, "null")) + + assert.Equal(t, int64(7), mapInt(row, "i")) + assert.Equal(t, int64(2), mapInt(row, "f")) // truncates + assert.Equal(t, int64(9), mapInt(row, "numStr")) + assert.Equal(t, int64(0), mapInt(row, "missing")) + + assert.InDelta(t, 2.5, mapFloat(row, "f"), 0) + assert.InDelta(t, float64(7), mapFloat(row, "i"), 0) + assert.InDelta(t, 3.5, mapFloat(row, "floatStr"), 0) + assert.InDelta(t, float64(0), mapFloat(row, "missing"), 0) +} + +func TestBuildQueryData(t *testing.T) { + t.Parallel() + + m := &MySQLRTA{ + serviceID: "svc-1", + serviceName: "rta-mysql", + dbInstanceAddress: "127.0.0.1:3306", + } + + row := map[string]any{ + "conn_id": int64(42), + "user": "sbtest@localhost", + "db": "sbtest", + "command": "Query", + "state": "executing", + "statement_latency": int64(2_000_000_000), // 2ms expressed in picoseconds + "current_statement": "SELECT 1", + "rows_examined": int64(200), + "rows_sent": int64(100), + "full_scan": "YES", + "program_name": "mysql", + "trx_state": "ACTIVE", + "pid": nil, + } + + qd := m.buildQueryData(row) + require.NotNil(t, qd) + + assert.Equal(t, "svc-1", qd.ServiceId) + assert.Equal(t, "rta-mysql", qd.ServiceName) + assert.Equal(t, "42", qd.QueryId) + assert.Equal(t, "SELECT 1", qd.QueryText) + // 2_000_000_000 ps / 1000 = 2_000_000 ns = 2ms + assert.Equal(t, 2*time.Millisecond, qd.QueryExecutionDuration.AsDuration()) + + p := qd.GetMySqlPayload() + require.NotNil(t, p) + assert.Equal(t, "127.0.0.1:3306", p.DbInstanceAddress) + assert.Equal(t, "sbtest", p.DatabaseName) + assert.Equal(t, "Query", p.Command) + assert.Equal(t, "executing", p.State) + assert.Equal(t, "sbtest@localhost", p.Username) + assert.Equal(t, int64(200), p.RowsExamined) + assert.Equal(t, int64(100), p.RowsSent) + assert.True(t, p.FullScan) + assert.Equal(t, "mysql", p.ProgramName) + + // Raw payload is pretty-printed (multi-line) and preserves the whole row, NULLs included. + assert.Contains(t, qd.QueryRawJson, "\n") + var parsed map[string]any + require.NoError(t, json.Unmarshal([]byte(qd.QueryRawJson), &parsed)) + assert.Contains(t, parsed, "current_statement") + assert.Contains(t, parsed, "statement_latency") + assert.Contains(t, parsed, "trx_state") + assert.Nil(t, parsed["pid"], "NULL columns are preserved as JSON null") +} + +func TestBuildQueryDataFullScanAndMissing(t *testing.T) { + t.Parallel() + + m := &MySQLRTA{serviceID: "svc", serviceName: "svc"} + + // full_scan "NO" -> false, and a missing statement_latency -> zero duration. + qd := m.buildQueryData(map[string]any{ + "conn_id": int64(1), + "current_statement": "SELECT 2", + "full_scan": "NO", + }) + require.NotNil(t, qd) + assert.False(t, qd.GetMySqlPayload().FullScan) + assert.Equal(t, time.Duration(0), qd.QueryExecutionDuration.AsDuration()) +} + +func TestNewCollectInterval(t *testing.T) { + t.Parallel() + + l := logrus.NewEntry(logrus.New()) + + assert.Equal(t, 5*time.Second, New(&Params{CollectInterval: 5 * time.Second}, l).collectInterval) + + // A missing or non-positive interval must not reach time.NewTicker, which + // panics on it and would take the whole pmm-agent down. + assert.Equal(t, defaultCollectInterval, New(&Params{}, l).collectInterval) + assert.Equal(t, defaultCollectInterval, New(&Params{CollectInterval: -1}, l).collectInterval) +} diff --git a/agent/agents/supervisor/supervisor.go b/agent/agents/supervisor/supervisor.go index 3a6c4ab3504..048dfcf140c 100644 --- a/agent/agents/supervisor/supervisor.go +++ b/agent/agents/supervisor/supervisor.go @@ -37,6 +37,7 @@ import ( mongoprofiler "github.com/percona/pmm/agent/agents/mongodb/profiler" mongorta "github.com/percona/pmm/agent/agents/mongodb/realtimeanalytics" "github.com/percona/pmm/agent/agents/mysql/perfschema" + mysqlrta "github.com/percona/pmm/agent/agents/mysql/realtimeanalytics" "github.com/percona/pmm/agent/agents/mysql/slowlog" "github.com/percona/pmm/agent/agents/noop" "github.com/percona/pmm/agent/agents/postgres/pgstatmonitor" @@ -672,6 +673,18 @@ func (s *Supervisor) startBuiltin(agentID string, builtinAgent *agentv1.SetState } agent, err = mongorta.New(params, l) + case inventoryv1.AgentType_AGENT_TYPE_RTA_MYSQL_AGENT: + params := &mysqlrta.Params{ + DSN: dsn, + AgentID: agentID, + ServiceID: builtinAgent.ServiceId, + ServiceName: builtinAgent.ServiceName, + CollectInterval: builtinAgent.RtaOptions.GetCollectInterval().AsDuration(), + TextFiles: builtinAgent.GetTextFiles(), + TLSSkipVerify: builtinAgent.TlsSkipVerify, + } + agent = mysqlrta.New(params, l) + case typeTestNoop: agent = noop.New() diff --git a/api-tests/helpers.go b/api-tests/helpers.go index 28425dea598..bb698a51738 100644 --- a/api-tests/helpers.go +++ b/api-tests/helpers.go @@ -329,6 +329,9 @@ func AddAgent(t *testing.T, body agents.AddAgentBody) *agents.AddAgentOKBody { case body.RtaMongodbAgent != nil: require.NotNil(t, res.Payload.RtaMongodbAgent) agentID = res.Payload.RtaMongodbAgent.AgentID + case body.RtaMysqlAgent != nil: + require.NotNil(t, res.Payload.RtaMysqlAgent) + agentID = res.Payload.RtaMysqlAgent.AgentID case body.QANMongodbMongologAgent != nil: require.NotNil(t, res.Payload.QANMongodbMongologAgent) agentID = res.Payload.QANMongodbMongologAgent.AgentID diff --git a/api-tests/inventory/agents_rta_mysql_test.go b/api-tests/inventory/agents_rta_mysql_test.go new file mode 100644 index 00000000000..de78d961c1a --- /dev/null +++ b/api-tests/inventory/agents_rta_mysql_test.go @@ -0,0 +1,365 @@ +// Copyright (C) 2023 Percona LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package inventory + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "google.golang.org/grpc/codes" + + pmmapitests "github.com/percona/pmm/api-tests" + "github.com/percona/pmm/api/inventory/v1/json/client" + agents "github.com/percona/pmm/api/inventory/v1/json/client/agents_service" + services "github.com/percona/pmm/api/inventory/v1/json/client/services_service" +) + +func TestRTAMySQLAgent(t *testing.T) { + t.Parallel() + + t.Run("Basic", func(t *testing.T) { + t.Parallel() + + genericNodeID := pmmapitests.AddGenericNode(t, pmmapitests.TestString(t, "Test Generic Node for RTA MySQL Agent")).NodeID + + service := pmmapitests.AddService(t, services.AddServiceBody{ + Mysql: &services.AddServiceParamsBodyMysql{ + NodeID: genericNodeID, + Address: pmmapitests.TestString(t, "localhost"), + Port: 3306, + ServiceName: pmmapitests.TestString(t, "MySQL Service for RTA Agent test"), + }, + }) + serviceID := service.Mysql.ServiceID + t.Cleanup(func() { + pmmapitests.RemoveServices(t, serviceID) + }) + + pmmAgentID := pmmapitests.AddPMMAgent(t, genericNodeID).AgentID + + t.Cleanup(func() { + pmmapitests.RemoveAgents(t, pmmAgentID) + }) + + res := pmmapitests.AddAgent(t, agents.AddAgentBody{ + RtaMysqlAgent: &agents.AddAgentParamsBodyRtaMysqlAgent{ + ServiceID: serviceID, + Username: "username", + Password: "password", + PMMAgentID: pmmAgentID, + CustomLabels: map[string]string{ + "new_label": "RTAMysqlAgent", + }, + RtaOptions: &agents.AddAgentParamsBodyRtaMysqlAgentRtaOptions{ + CollectInterval: "5s", + }, + + SkipConnectionCheck: true, + }, + }) + agentID := res.RtaMysqlAgent.AgentID + + getAgentRes, err := client.Default.AgentsService.GetAgent(&agents.GetAgentParams{ + AgentID: agentID, + Context: pmmapitests.Context, + }) + require.NoError(t, err) + assert.Equal(t, &agents.GetAgentOK{ + Payload: &agents.GetAgentOKBody{ + RtaMysqlAgent: &agents.GetAgentOKBodyRtaMysqlAgent{ + AgentID: agentID, + ServiceID: serviceID, + Username: "username", + PMMAgentID: pmmAgentID, + CustomLabels: map[string]string{ + "new_label": "RTAMysqlAgent", + }, + RtaOptions: &agents.GetAgentOKBodyRtaMysqlAgentRtaOptions{ + CollectInterval: "5s", + }, + Status: &AgentStatusUnknown, + LogLevel: new("LOG_LEVEL_UNSPECIFIED"), + }, + }, + }, getAgentRes) + + // Test change API: disable, then re-enable with new labels and interval. + changeRTAMySQLAgentOK, err := client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + AgentID: agentID, + Body: agents.ChangeAgentBody{ + RtaMysqlAgent: &agents.ChangeAgentParamsBodyRtaMysqlAgent{ + Enable: new(false), + CustomLabels: &agents.ChangeAgentParamsBodyRtaMysqlAgentCustomLabels{}, + }, + }, + Context: pmmapitests.Context, + }, + ) + require.NoError(t, err) + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + RtaMysqlAgent: &agents.ChangeAgentOKBodyRtaMysqlAgent{ + AgentID: agentID, + ServiceID: serviceID, + Username: "username", + PMMAgentID: pmmAgentID, + Disabled: true, + Status: &AgentStatusDone, + CustomLabels: map[string]string{}, + RtaOptions: &agents.ChangeAgentOKBodyRtaMysqlAgentRtaOptions{ + CollectInterval: "5s", + }, + LogLevel: new("LOG_LEVEL_UNSPECIFIED"), + }, + }, + }, changeRTAMySQLAgentOK) + + changeRTAMySQLAgentOK, err = client.Default.AgentsService.ChangeAgent( + &agents.ChangeAgentParams{ + AgentID: agentID, + Body: agents.ChangeAgentBody{ + RtaMysqlAgent: &agents.ChangeAgentParamsBodyRtaMysqlAgent{ + Enable: new(true), + CustomLabels: &agents.ChangeAgentParamsBodyRtaMysqlAgentCustomLabels{ + Values: map[string]string{ + "new_label": "RTAMysqlAgent", + }, + }, + RtaOptions: &agents.ChangeAgentParamsBodyRtaMysqlAgentRtaOptions{ + CollectInterval: "10s", + }, + }, + }, + Context: pmmapitests.Context, + }, + ) + require.NoError(t, err) + assert.Equal(t, &agents.ChangeAgentOK{ + Payload: &agents.ChangeAgentOKBody{ + RtaMysqlAgent: &agents.ChangeAgentOKBodyRtaMysqlAgent{ + AgentID: agentID, + ServiceID: serviceID, + Username: "username", + PMMAgentID: pmmAgentID, + Disabled: false, + CustomLabels: map[string]string{ + "new_label": "RTAMysqlAgent", + }, + RtaOptions: &agents.ChangeAgentOKBodyRtaMysqlAgentRtaOptions{ + CollectInterval: "10s", + }, + Status: &AgentStatusDone, + LogLevel: new("LOG_LEVEL_UNSPECIFIED"), + }, + }, + }, changeRTAMySQLAgentOK) + }) + + t.Run("ChangeOnlySpecifiedFields_KeepOthersUnchanged", func(t *testing.T) { + t.Parallel() + + genericNodeID := pmmapitests.AddGenericNode(t, pmmapitests.TestString(t, "Test Generic Node for RTA MySQL partial update")).NodeID + + service := pmmapitests.AddService(t, services.AddServiceBody{ + Mysql: &services.AddServiceParamsBodyMysql{ + NodeID: genericNodeID, + Address: pmmapitests.TestString(t, "localhost"), + Port: 3306, + ServiceName: pmmapitests.TestString(t, "MySQL Service for RTA partial update test"), + }, + }) + serviceID := service.Mysql.ServiceID + pmmAgentID := pmmapitests.AddPMMAgent(t, genericNodeID).AgentID + + res := pmmapitests.AddAgent(t, agents.AddAgentBody{ + RtaMysqlAgent: &agents.AddAgentParamsBodyRtaMysqlAgent{ + ServiceID: serviceID, + Username: "initial-rta-user", + Password: "initial-rta-password", + PMMAgentID: pmmAgentID, + TLS: true, + TLSSkipVerify: false, + CustomLabels: map[string]string{ + "environment": "test", + "team": "dev", + }, + RtaOptions: &agents.AddAgentParamsBodyRtaMysqlAgentRtaOptions{ + CollectInterval: "6s", + }, + LogLevel: new("LOG_LEVEL_DEBUG"), + SkipConnectionCheck: true, + }, + }) + agentID := res.RtaMysqlAgent.AgentID + + // Change only username; everything else must remain unchanged. + _, err := client.Default.AgentsService.ChangeAgent(&agents.ChangeAgentParams{ + AgentID: agentID, + Body: agents.ChangeAgentBody{ + RtaMysqlAgent: &agents.ChangeAgentParamsBodyRtaMysqlAgent{ + Username: new("updated-user"), + }, + }, + Context: pmmapitests.Context, + }) + require.NoError(t, err) + + getAgentRes, err := client.Default.AgentsService.GetAgent(&agents.GetAgentParams{ + AgentID: agentID, + Context: pmmapitests.Context, + }) + require.NoError(t, err) + + agent := getAgentRes.Payload.RtaMysqlAgent + assert.Equal(t, "updated-user", agent.Username) // Changed + assert.True(t, agent.TLS) // Unchanged + assert.False(t, agent.TLSSkipVerify) // Unchanged + assert.Equal(t, map[string]string{ + "environment": "test", + "team": "dev", + }, agent.CustomLabels) // Unchanged + assert.Equal(t, "6s", agent.RtaOptions.CollectInterval) // Unchanged + assert.Equal(t, new("LOG_LEVEL_DEBUG"), agent.LogLevel) // Unchanged + assert.False(t, agent.Disabled) // Unchanged + }) + + t.Run("AddServiceIDEmpty", func(t *testing.T) { + t.Parallel() + + genericNodeID := pmmapitests.AddGenericNode(t, pmmapitests.TestString(t, "Test Generic Node for RTA MySQL Agent")).NodeID + pmmAgentID := pmmapitests.AddPMMAgent(t, genericNodeID).AgentID + + res, err := client.Default.AgentsService.AddAgent( + &agents.AddAgentParams{ + Body: agents.AddAgentBody{ + RtaMysqlAgent: &agents.AddAgentParamsBodyRtaMysqlAgent{ + ServiceID: "", + PMMAgentID: pmmAgentID, + Username: "username", + Password: "password", + + SkipConnectionCheck: true, + }, + }, + Context: pmmapitests.Context, + }, + ) + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddRTAMySQLAgentParams.ServiceId: value length must be at least 1 runes") + + if !assert.Nil(t, res) { + pmmapitests.RemoveAgents(t, res.Payload.RtaMysqlAgent.AgentID) + } + }) + + t.Run("AddPMMAgentIDEmpty", func(t *testing.T) { + t.Parallel() + + genericNodeID := pmmapitests.AddGenericNode(t, pmmapitests.TestString(t, "Test Generic Node for RTA MySQL Agent")).NodeID + + service := pmmapitests.AddService(t, services.AddServiceBody{ + Mysql: &services.AddServiceParamsBodyMysql{ + NodeID: genericNodeID, + Address: pmmapitests.TestString(t, "localhost"), + Port: 3306, + ServiceName: pmmapitests.TestString(t, "MySQL Service for RTA agent"), + }, + }) + serviceID := service.Mysql.ServiceID + + res, err := client.Default.AgentsService.AddAgent( + &agents.AddAgentParams{ + Body: agents.AddAgentBody{ + RtaMysqlAgent: &agents.AddAgentParamsBodyRtaMysqlAgent{ + ServiceID: serviceID, + PMMAgentID: "", + Username: "username", + Password: "password", + + SkipConnectionCheck: true, + }, + }, + Context: pmmapitests.Context, + }, + ) + pmmapitests.AssertAPIErrorf(t, err, 400, codes.InvalidArgument, "invalid AddRTAMySQLAgentParams.PmmAgentId: value length must be at least 1 runes") + if !assert.Nil(t, res) { + pmmapitests.RemoveAgents(t, res.Payload.RtaMysqlAgent.AgentID) + } + }) + + t.Run("NotExistServiceID", func(t *testing.T) { + t.Parallel() + + genericNodeID := pmmapitests.AddGenericNode(t, pmmapitests.TestString(t, "Test Generic Node for RTA MySQL Agent")).NodeID + pmmAgentID := pmmapitests.AddPMMAgent(t, genericNodeID).AgentID + + res, err := client.Default.AgentsService.AddAgent( + &agents.AddAgentParams{ + Body: agents.AddAgentBody{ + RtaMysqlAgent: &agents.AddAgentParamsBodyRtaMysqlAgent{ + ServiceID: "pmm-service-id", + PMMAgentID: pmmAgentID, + Username: "username", + Password: "password", + }, + }, + Context: pmmapitests.Context, + }, + ) + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Service with ID \"pmm-service-id\" not found.") + + if !assert.Nil(t, res) { + pmmapitests.RemoveAgents(t, res.Payload.RtaMysqlAgent.AgentID) + } + }) + + t.Run("NotExistPMMAgentID", func(t *testing.T) { + t.Parallel() + + genericNodeID := pmmapitests.AddGenericNode(t, pmmapitests.TestString(t, "Test Generic Node for RTA MySQL Agent")).NodeID + + service := pmmapitests.AddService(t, services.AddServiceBody{ + Mysql: &services.AddServiceParamsBodyMysql{ + NodeID: genericNodeID, + Address: pmmapitests.TestString(t, "localhost"), + Port: 3306, + ServiceName: pmmapitests.TestString(t, "MySQL Service for not exists node ID"), + }, + }) + serviceID := service.Mysql.ServiceID + + res, err := client.Default.AgentsService.AddAgent( + &agents.AddAgentParams{ + Body: agents.AddAgentBody{ + RtaMysqlAgent: &agents.AddAgentParamsBodyRtaMysqlAgent{ + ServiceID: serviceID, + PMMAgentID: "pmm-not-exist-server", + Username: "username", + Password: "password", + }, + }, + Context: pmmapitests.Context, + }, + ) + pmmapitests.AssertAPIErrorf(t, err, 404, codes.NotFound, "Agent with ID pmm-not-exist-server not found.") + + if !assert.Nil(t, res) { + pmmapitests.RemoveAgents(t, res.Payload.RtaMysqlAgent.AgentID) + } + }) +} diff --git a/api/agentlocal/v1/json/client/agent_local_service/status2_responses.go b/api/agentlocal/v1/json/client/agent_local_service/status2_responses.go index 607efda9a14..9436521d715 100644 --- a/api/agentlocal/v1/json/client/agent_local_service/status2_responses.go +++ b/api/agentlocal/v1/json/client/agent_local_service/status2_responses.go @@ -609,7 +609,7 @@ type Status2OKBodyAgentsInfoItems0 struct { AgentID string `json:"agent_id,omitempty"` // AgentType describes supported Agent types. - // Enum: ["AGENT_TYPE_UNSPECIFIED","AGENT_TYPE_PMM_AGENT","AGENT_TYPE_VM_AGENT","AGENT_TYPE_NODE_EXPORTER","AGENT_TYPE_MYSQLD_EXPORTER","AGENT_TYPE_MONGODB_EXPORTER","AGENT_TYPE_POSTGRES_EXPORTER","AGENT_TYPE_PROXYSQL_EXPORTER","AGENT_TYPE_VALKEY_EXPORTER","AGENT_TYPE_QAN_MYSQL_PERFSCHEMA_AGENT","AGENT_TYPE_QAN_MYSQL_SLOWLOG_AGENT","AGENT_TYPE_QAN_MONGODB_PROFILER_AGENT","AGENT_TYPE_QAN_MONGODB_MONGOLOG_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATEMENTS_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATMONITOR_AGENT","AGENT_TYPE_EXTERNAL_EXPORTER","AGENT_TYPE_RDS_EXPORTER","AGENT_TYPE_AZURE_DATABASE_EXPORTER","AGENT_TYPE_NOMAD_AGENT","AGENT_TYPE_RTA_MONGODB_AGENT"] + // Enum: ["AGENT_TYPE_UNSPECIFIED","AGENT_TYPE_PMM_AGENT","AGENT_TYPE_VM_AGENT","AGENT_TYPE_NODE_EXPORTER","AGENT_TYPE_MYSQLD_EXPORTER","AGENT_TYPE_MONGODB_EXPORTER","AGENT_TYPE_POSTGRES_EXPORTER","AGENT_TYPE_PROXYSQL_EXPORTER","AGENT_TYPE_VALKEY_EXPORTER","AGENT_TYPE_QAN_MYSQL_PERFSCHEMA_AGENT","AGENT_TYPE_QAN_MYSQL_SLOWLOG_AGENT","AGENT_TYPE_QAN_MONGODB_PROFILER_AGENT","AGENT_TYPE_QAN_MONGODB_MONGOLOG_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATEMENTS_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATMONITOR_AGENT","AGENT_TYPE_EXTERNAL_EXPORTER","AGENT_TYPE_RDS_EXPORTER","AGENT_TYPE_AZURE_DATABASE_EXPORTER","AGENT_TYPE_NOMAD_AGENT","AGENT_TYPE_RTA_MONGODB_AGENT","AGENT_TYPE_RTA_MYSQL_AGENT"] AgentType *string `json:"agent_type,omitempty"` // AgentStatus represents actual Agent status. @@ -654,7 +654,7 @@ var status2OkBodyAgentsInfoItems0TypeAgentTypePropEnum []any func init() { var res []string - if err := json.Unmarshal([]byte(`["AGENT_TYPE_UNSPECIFIED","AGENT_TYPE_PMM_AGENT","AGENT_TYPE_VM_AGENT","AGENT_TYPE_NODE_EXPORTER","AGENT_TYPE_MYSQLD_EXPORTER","AGENT_TYPE_MONGODB_EXPORTER","AGENT_TYPE_POSTGRES_EXPORTER","AGENT_TYPE_PROXYSQL_EXPORTER","AGENT_TYPE_VALKEY_EXPORTER","AGENT_TYPE_QAN_MYSQL_PERFSCHEMA_AGENT","AGENT_TYPE_QAN_MYSQL_SLOWLOG_AGENT","AGENT_TYPE_QAN_MONGODB_PROFILER_AGENT","AGENT_TYPE_QAN_MONGODB_MONGOLOG_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATEMENTS_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATMONITOR_AGENT","AGENT_TYPE_EXTERNAL_EXPORTER","AGENT_TYPE_RDS_EXPORTER","AGENT_TYPE_AZURE_DATABASE_EXPORTER","AGENT_TYPE_NOMAD_AGENT","AGENT_TYPE_RTA_MONGODB_AGENT"]`), &res); err != nil { + if err := json.Unmarshal([]byte(`["AGENT_TYPE_UNSPECIFIED","AGENT_TYPE_PMM_AGENT","AGENT_TYPE_VM_AGENT","AGENT_TYPE_NODE_EXPORTER","AGENT_TYPE_MYSQLD_EXPORTER","AGENT_TYPE_MONGODB_EXPORTER","AGENT_TYPE_POSTGRES_EXPORTER","AGENT_TYPE_PROXYSQL_EXPORTER","AGENT_TYPE_VALKEY_EXPORTER","AGENT_TYPE_QAN_MYSQL_PERFSCHEMA_AGENT","AGENT_TYPE_QAN_MYSQL_SLOWLOG_AGENT","AGENT_TYPE_QAN_MONGODB_PROFILER_AGENT","AGENT_TYPE_QAN_MONGODB_MONGOLOG_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATEMENTS_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATMONITOR_AGENT","AGENT_TYPE_EXTERNAL_EXPORTER","AGENT_TYPE_RDS_EXPORTER","AGENT_TYPE_AZURE_DATABASE_EXPORTER","AGENT_TYPE_NOMAD_AGENT","AGENT_TYPE_RTA_MONGODB_AGENT","AGENT_TYPE_RTA_MYSQL_AGENT"]`), &res); err != nil { panic(err) } for _, v := range res { @@ -723,6 +723,9 @@ const ( // Status2OKBodyAgentsInfoItems0AgentTypeAGENTTYPERTAMONGODBAGENT captures enum value "AGENT_TYPE_RTA_MONGODB_AGENT" Status2OKBodyAgentsInfoItems0AgentTypeAGENTTYPERTAMONGODBAGENT string = "AGENT_TYPE_RTA_MONGODB_AGENT" + + // Status2OKBodyAgentsInfoItems0AgentTypeAGENTTYPERTAMYSQLAGENT captures enum value "AGENT_TYPE_RTA_MYSQL_AGENT" + Status2OKBodyAgentsInfoItems0AgentTypeAGENTTYPERTAMYSQLAGENT string = "AGENT_TYPE_RTA_MYSQL_AGENT" ) // prop value enum diff --git a/api/agentlocal/v1/json/client/agent_local_service/status_responses.go b/api/agentlocal/v1/json/client/agent_local_service/status_responses.go index 236c43b1008..e97b25a4008 100644 --- a/api/agentlocal/v1/json/client/agent_local_service/status_responses.go +++ b/api/agentlocal/v1/json/client/agent_local_service/status_responses.go @@ -646,7 +646,7 @@ type StatusOKBodyAgentsInfoItems0 struct { AgentID string `json:"agent_id,omitempty"` // AgentType describes supported Agent types. - // Enum: ["AGENT_TYPE_UNSPECIFIED","AGENT_TYPE_PMM_AGENT","AGENT_TYPE_VM_AGENT","AGENT_TYPE_NODE_EXPORTER","AGENT_TYPE_MYSQLD_EXPORTER","AGENT_TYPE_MONGODB_EXPORTER","AGENT_TYPE_POSTGRES_EXPORTER","AGENT_TYPE_PROXYSQL_EXPORTER","AGENT_TYPE_VALKEY_EXPORTER","AGENT_TYPE_QAN_MYSQL_PERFSCHEMA_AGENT","AGENT_TYPE_QAN_MYSQL_SLOWLOG_AGENT","AGENT_TYPE_QAN_MONGODB_PROFILER_AGENT","AGENT_TYPE_QAN_MONGODB_MONGOLOG_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATEMENTS_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATMONITOR_AGENT","AGENT_TYPE_EXTERNAL_EXPORTER","AGENT_TYPE_RDS_EXPORTER","AGENT_TYPE_AZURE_DATABASE_EXPORTER","AGENT_TYPE_NOMAD_AGENT","AGENT_TYPE_RTA_MONGODB_AGENT"] + // Enum: ["AGENT_TYPE_UNSPECIFIED","AGENT_TYPE_PMM_AGENT","AGENT_TYPE_VM_AGENT","AGENT_TYPE_NODE_EXPORTER","AGENT_TYPE_MYSQLD_EXPORTER","AGENT_TYPE_MONGODB_EXPORTER","AGENT_TYPE_POSTGRES_EXPORTER","AGENT_TYPE_PROXYSQL_EXPORTER","AGENT_TYPE_VALKEY_EXPORTER","AGENT_TYPE_QAN_MYSQL_PERFSCHEMA_AGENT","AGENT_TYPE_QAN_MYSQL_SLOWLOG_AGENT","AGENT_TYPE_QAN_MONGODB_PROFILER_AGENT","AGENT_TYPE_QAN_MONGODB_MONGOLOG_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATEMENTS_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATMONITOR_AGENT","AGENT_TYPE_EXTERNAL_EXPORTER","AGENT_TYPE_RDS_EXPORTER","AGENT_TYPE_AZURE_DATABASE_EXPORTER","AGENT_TYPE_NOMAD_AGENT","AGENT_TYPE_RTA_MONGODB_AGENT","AGENT_TYPE_RTA_MYSQL_AGENT"] AgentType *string `json:"agent_type,omitempty"` // AgentStatus represents actual Agent status. @@ -691,7 +691,7 @@ var statusOkBodyAgentsInfoItems0TypeAgentTypePropEnum []any func init() { var res []string - if err := json.Unmarshal([]byte(`["AGENT_TYPE_UNSPECIFIED","AGENT_TYPE_PMM_AGENT","AGENT_TYPE_VM_AGENT","AGENT_TYPE_NODE_EXPORTER","AGENT_TYPE_MYSQLD_EXPORTER","AGENT_TYPE_MONGODB_EXPORTER","AGENT_TYPE_POSTGRES_EXPORTER","AGENT_TYPE_PROXYSQL_EXPORTER","AGENT_TYPE_VALKEY_EXPORTER","AGENT_TYPE_QAN_MYSQL_PERFSCHEMA_AGENT","AGENT_TYPE_QAN_MYSQL_SLOWLOG_AGENT","AGENT_TYPE_QAN_MONGODB_PROFILER_AGENT","AGENT_TYPE_QAN_MONGODB_MONGOLOG_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATEMENTS_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATMONITOR_AGENT","AGENT_TYPE_EXTERNAL_EXPORTER","AGENT_TYPE_RDS_EXPORTER","AGENT_TYPE_AZURE_DATABASE_EXPORTER","AGENT_TYPE_NOMAD_AGENT","AGENT_TYPE_RTA_MONGODB_AGENT"]`), &res); err != nil { + if err := json.Unmarshal([]byte(`["AGENT_TYPE_UNSPECIFIED","AGENT_TYPE_PMM_AGENT","AGENT_TYPE_VM_AGENT","AGENT_TYPE_NODE_EXPORTER","AGENT_TYPE_MYSQLD_EXPORTER","AGENT_TYPE_MONGODB_EXPORTER","AGENT_TYPE_POSTGRES_EXPORTER","AGENT_TYPE_PROXYSQL_EXPORTER","AGENT_TYPE_VALKEY_EXPORTER","AGENT_TYPE_QAN_MYSQL_PERFSCHEMA_AGENT","AGENT_TYPE_QAN_MYSQL_SLOWLOG_AGENT","AGENT_TYPE_QAN_MONGODB_PROFILER_AGENT","AGENT_TYPE_QAN_MONGODB_MONGOLOG_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATEMENTS_AGENT","AGENT_TYPE_QAN_POSTGRESQL_PGSTATMONITOR_AGENT","AGENT_TYPE_EXTERNAL_EXPORTER","AGENT_TYPE_RDS_EXPORTER","AGENT_TYPE_AZURE_DATABASE_EXPORTER","AGENT_TYPE_NOMAD_AGENT","AGENT_TYPE_RTA_MONGODB_AGENT","AGENT_TYPE_RTA_MYSQL_AGENT"]`), &res); err != nil { panic(err) } for _, v := range res { @@ -760,6 +760,9 @@ const ( // StatusOKBodyAgentsInfoItems0AgentTypeAGENTTYPERTAMONGODBAGENT captures enum value "AGENT_TYPE_RTA_MONGODB_AGENT" StatusOKBodyAgentsInfoItems0AgentTypeAGENTTYPERTAMONGODBAGENT string = "AGENT_TYPE_RTA_MONGODB_AGENT" + + // StatusOKBodyAgentsInfoItems0AgentTypeAGENTTYPERTAMYSQLAGENT captures enum value "AGENT_TYPE_RTA_MYSQL_AGENT" + StatusOKBodyAgentsInfoItems0AgentTypeAGENTTYPERTAMYSQLAGENT string = "AGENT_TYPE_RTA_MYSQL_AGENT" ) // prop value enum diff --git a/api/agentlocal/v1/json/v1.json b/api/agentlocal/v1/json/v1.json index 1eb9d0f86fb..a61dfd39213 100644 --- a/api/agentlocal/v1/json/v1.json +++ b/api/agentlocal/v1/json/v1.json @@ -179,7 +179,8 @@ "AGENT_TYPE_RDS_EXPORTER", "AGENT_TYPE_AZURE_DATABASE_EXPORTER", "AGENT_TYPE_NOMAD_AGENT", - "AGENT_TYPE_RTA_MONGODB_AGENT" + "AGENT_TYPE_RTA_MONGODB_AGENT", + "AGENT_TYPE_RTA_MYSQL_AGENT" ], "x-order": 1 }, @@ -378,7 +379,8 @@ "AGENT_TYPE_RDS_EXPORTER", "AGENT_TYPE_AZURE_DATABASE_EXPORTER", "AGENT_TYPE_NOMAD_AGENT", - "AGENT_TYPE_RTA_MONGODB_AGENT" + "AGENT_TYPE_RTA_MONGODB_AGENT", + "AGENT_TYPE_RTA_MYSQL_AGENT" ], "x-order": 1 }, diff --git a/api/inventory/v1/agents.go b/api/inventory/v1/agents.go index bba905751ca..f19b43063b5 100644 --- a/api/inventory/v1/agents.go +++ b/api/inventory/v1/agents.go @@ -43,3 +43,4 @@ func (*ExternalExporter) sealedAgent() {} func (*AzureDatabaseExporter) sealedAgent() {} func (*ValkeyExporter) sealedAgent() {} func (*RTAMongoDBAgent) sealedAgent() {} +func (*RTAMySQLAgent) sealedAgent() {} diff --git a/api/inventory/v1/agents.pb.go b/api/inventory/v1/agents.pb.go index da6a2c941dd..0d22547699a 100644 --- a/api/inventory/v1/agents.pb.go +++ b/api/inventory/v1/agents.pb.go @@ -53,6 +53,7 @@ const ( AgentType_AGENT_TYPE_AZURE_DATABASE_EXPORTER AgentType = 15 AgentType_AGENT_TYPE_NOMAD_AGENT AgentType = 16 AgentType_AGENT_TYPE_RTA_MONGODB_AGENT AgentType = 19 + AgentType_AGENT_TYPE_RTA_MYSQL_AGENT AgentType = 20 ) // Enum value maps for AgentType. @@ -78,6 +79,7 @@ var ( 15: "AGENT_TYPE_AZURE_DATABASE_EXPORTER", 16: "AGENT_TYPE_NOMAD_AGENT", 19: "AGENT_TYPE_RTA_MONGODB_AGENT", + 20: "AGENT_TYPE_RTA_MYSQL_AGENT", } AgentType_value = map[string]int32{ "AGENT_TYPE_UNSPECIFIED": 0, @@ -100,6 +102,7 @@ var ( "AGENT_TYPE_AZURE_DATABASE_EXPORTER": 15, "AGENT_TYPE_NOMAD_AGENT": 16, "AGENT_TYPE_RTA_MONGODB_AGENT": 19, + "AGENT_TYPE_RTA_MYSQL_AGENT": 20, } ) @@ -2480,6 +2483,142 @@ func (x *RTAMongoDBAgent) GetLogLevel() LogLevel { return LogLevel_LOG_LEVEL_UNSPECIFIED } +// RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server. +type RTAMySQLAgent struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Unique agent identifier. + AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + // The pmm-agent identifier which runs this instance. + PmmAgentId string `protobuf:"bytes,2,opt,name=pmm_agent_id,json=pmmAgentId,proto3" json:"pmm_agent_id,omitempty"` + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `protobuf:"varint,3,opt,name=disabled,proto3" json:"disabled,omitempty"` + // Service identifier. + ServiceId string `protobuf:"bytes,4,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` + // MySQL username for getting the currently running queries. + Username string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"` + // Use TLS for database connections. + Tls bool `protobuf:"varint,6,opt,name=tls,proto3" json:"tls,omitempty"` + // Skip TLS certificate and hostname validation. + TlsSkipVerify bool `protobuf:"varint,7,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3" json:"tls_skip_verify,omitempty"` + // Custom user-assigned labels. + CustomLabels map[string]string `protobuf:"bytes,8,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Real-Time Analytics options. + RtaOptions *RTAOptions `protobuf:"bytes,9,opt,name=rta_options,json=rtaOptions,proto3" json:"rta_options,omitempty"` + // Actual Agent status. + Status AgentStatus `protobuf:"varint,10,opt,name=status,proto3,enum=inventory.v1.AgentStatus" json:"status,omitempty"` + // Log level for exporter. + LogLevel LogLevel `protobuf:"varint,11,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RTAMySQLAgent) Reset() { + *x = RTAMySQLAgent{} + mi := &file_inventory_v1_agents_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RTAMySQLAgent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RTAMySQLAgent) ProtoMessage() {} + +func (x *RTAMySQLAgent) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RTAMySQLAgent.ProtoReflect.Descriptor instead. +func (*RTAMySQLAgent) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{15} +} + +func (x *RTAMySQLAgent) GetAgentId() string { + if x != nil { + return x.AgentId + } + return "" +} + +func (x *RTAMySQLAgent) GetPmmAgentId() string { + if x != nil { + return x.PmmAgentId + } + return "" +} + +func (x *RTAMySQLAgent) GetDisabled() bool { + if x != nil { + return x.Disabled + } + return false +} + +func (x *RTAMySQLAgent) GetServiceId() string { + if x != nil { + return x.ServiceId + } + return "" +} + +func (x *RTAMySQLAgent) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *RTAMySQLAgent) GetTls() bool { + if x != nil { + return x.Tls + } + return false +} + +func (x *RTAMySQLAgent) GetTlsSkipVerify() bool { + if x != nil { + return x.TlsSkipVerify + } + return false +} + +func (x *RTAMySQLAgent) GetCustomLabels() map[string]string { + if x != nil { + return x.CustomLabels + } + return nil +} + +func (x *RTAMySQLAgent) GetRtaOptions() *RTAOptions { + if x != nil { + return x.RtaOptions + } + return nil +} + +func (x *RTAMySQLAgent) GetStatus() AgentStatus { + if x != nil { + return x.Status + } + return AgentStatus_AGENT_STATUS_UNSPECIFIED +} + +func (x *RTAMySQLAgent) GetLogLevel() LogLevel { + if x != nil { + return x.LogLevel + } + return LogLevel_LOG_LEVEL_UNSPECIFIED +} + // QANPostgreSQLPgStatementsAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server. type QANPostgreSQLPgStatementsAgent struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -2515,7 +2654,7 @@ type QANPostgreSQLPgStatementsAgent struct { func (x *QANPostgreSQLPgStatementsAgent) Reset() { *x = QANPostgreSQLPgStatementsAgent{} - mi := &file_inventory_v1_agents_proto_msgTypes[15] + mi := &file_inventory_v1_agents_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2527,7 +2666,7 @@ func (x *QANPostgreSQLPgStatementsAgent) String() string { func (*QANPostgreSQLPgStatementsAgent) ProtoMessage() {} func (x *QANPostgreSQLPgStatementsAgent) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[15] + mi := &file_inventory_v1_agents_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2540,7 +2679,7 @@ func (x *QANPostgreSQLPgStatementsAgent) ProtoReflect() protoreflect.Message { // Deprecated: Use QANPostgreSQLPgStatementsAgent.ProtoReflect.Descriptor instead. func (*QANPostgreSQLPgStatementsAgent) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{15} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{16} } func (x *QANPostgreSQLPgStatementsAgent) GetAgentId() string { @@ -2671,7 +2810,7 @@ type QANPostgreSQLPgStatMonitorAgent struct { func (x *QANPostgreSQLPgStatMonitorAgent) Reset() { *x = QANPostgreSQLPgStatMonitorAgent{} - mi := &file_inventory_v1_agents_proto_msgTypes[16] + mi := &file_inventory_v1_agents_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2683,7 +2822,7 @@ func (x *QANPostgreSQLPgStatMonitorAgent) String() string { func (*QANPostgreSQLPgStatMonitorAgent) ProtoMessage() {} func (x *QANPostgreSQLPgStatMonitorAgent) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[16] + mi := &file_inventory_v1_agents_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2696,7 +2835,7 @@ func (x *QANPostgreSQLPgStatMonitorAgent) ProtoReflect() protoreflect.Message { // Deprecated: Use QANPostgreSQLPgStatMonitorAgent.ProtoReflect.Descriptor instead. func (*QANPostgreSQLPgStatMonitorAgent) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{16} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{17} } func (x *QANPostgreSQLPgStatMonitorAgent) GetAgentId() string { @@ -2836,7 +2975,7 @@ type RDSExporter struct { func (x *RDSExporter) Reset() { *x = RDSExporter{} - mi := &file_inventory_v1_agents_proto_msgTypes[17] + mi := &file_inventory_v1_agents_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2848,7 +2987,7 @@ func (x *RDSExporter) String() string { func (*RDSExporter) ProtoMessage() {} func (x *RDSExporter) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[17] + mi := &file_inventory_v1_agents_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2861,7 +3000,7 @@ func (x *RDSExporter) ProtoReflect() protoreflect.Message { // Deprecated: Use RDSExporter.ProtoReflect.Descriptor instead. func (*RDSExporter) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{17} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{18} } func (x *RDSExporter) GetAgentId() string { @@ -3006,7 +3145,7 @@ type ExternalExporter struct { func (x *ExternalExporter) Reset() { *x = ExternalExporter{} - mi := &file_inventory_v1_agents_proto_msgTypes[18] + mi := &file_inventory_v1_agents_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3018,7 +3157,7 @@ func (x *ExternalExporter) String() string { func (*ExternalExporter) ProtoMessage() {} func (x *ExternalExporter) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[18] + mi := &file_inventory_v1_agents_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3031,7 +3170,7 @@ func (x *ExternalExporter) ProtoReflect() protoreflect.Message { // Deprecated: Use ExternalExporter.ProtoReflect.Descriptor instead. func (*ExternalExporter) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{18} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{19} } func (x *ExternalExporter) GetAgentId() string { @@ -3167,7 +3306,7 @@ type AzureDatabaseExporter struct { func (x *AzureDatabaseExporter) Reset() { *x = AzureDatabaseExporter{} - mi := &file_inventory_v1_agents_proto_msgTypes[19] + mi := &file_inventory_v1_agents_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3179,7 +3318,7 @@ func (x *AzureDatabaseExporter) String() string { func (*AzureDatabaseExporter) ProtoMessage() {} func (x *AzureDatabaseExporter) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[19] + mi := &file_inventory_v1_agents_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3192,7 +3331,7 @@ func (x *AzureDatabaseExporter) ProtoReflect() protoreflect.Message { // Deprecated: Use AzureDatabaseExporter.ProtoReflect.Descriptor instead. func (*AzureDatabaseExporter) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{19} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{20} } func (x *AzureDatabaseExporter) GetAgentId() string { @@ -3303,7 +3442,7 @@ type ChangeCommonAgentParams struct { func (x *ChangeCommonAgentParams) Reset() { *x = ChangeCommonAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[20] + mi := &file_inventory_v1_agents_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3315,7 +3454,7 @@ func (x *ChangeCommonAgentParams) String() string { func (*ChangeCommonAgentParams) ProtoMessage() {} func (x *ChangeCommonAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[20] + mi := &file_inventory_v1_agents_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3328,7 +3467,7 @@ func (x *ChangeCommonAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeCommonAgentParams.ProtoReflect.Descriptor instead. func (*ChangeCommonAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{20} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{21} } func (x *ChangeCommonAgentParams) GetEnable() bool { @@ -3378,7 +3517,7 @@ type ListAgentsRequest struct { func (x *ListAgentsRequest) Reset() { *x = ListAgentsRequest{} - mi := &file_inventory_v1_agents_proto_msgTypes[21] + mi := &file_inventory_v1_agents_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3390,7 +3529,7 @@ func (x *ListAgentsRequest) String() string { func (*ListAgentsRequest) ProtoMessage() {} func (x *ListAgentsRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[21] + mi := &file_inventory_v1_agents_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3403,7 +3542,7 @@ func (x *ListAgentsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAgentsRequest.ProtoReflect.Descriptor instead. func (*ListAgentsRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{21} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{22} } func (x *ListAgentsRequest) GetPmmAgentId() string { @@ -3455,13 +3594,14 @@ type ListAgentsResponse struct { NomadAgent []*NomadAgent `protobuf:"bytes,16,rep,name=nomad_agent,json=nomadAgent,proto3" json:"nomad_agent,omitempty"` ValkeyExporter []*ValkeyExporter `protobuf:"bytes,17,rep,name=valkey_exporter,json=valkeyExporter,proto3" json:"valkey_exporter,omitempty"` RtaMongodbAgent []*RTAMongoDBAgent `protobuf:"bytes,19,rep,name=rta_mongodb_agent,json=rtaMongodbAgent,proto3" json:"rta_mongodb_agent,omitempty"` + RtaMysqlAgent []*RTAMySQLAgent `protobuf:"bytes,20,rep,name=rta_mysql_agent,json=rtaMysqlAgent,proto3" json:"rta_mysql_agent,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListAgentsResponse) Reset() { *x = ListAgentsResponse{} - mi := &file_inventory_v1_agents_proto_msgTypes[22] + mi := &file_inventory_v1_agents_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3473,7 +3613,7 @@ func (x *ListAgentsResponse) String() string { func (*ListAgentsResponse) ProtoMessage() {} func (x *ListAgentsResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[22] + mi := &file_inventory_v1_agents_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3486,7 +3626,7 @@ func (x *ListAgentsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListAgentsResponse.ProtoReflect.Descriptor instead. func (*ListAgentsResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{22} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{23} } func (x *ListAgentsResponse) GetPmmAgent() []*PMMAgent { @@ -3622,6 +3762,13 @@ func (x *ListAgentsResponse) GetRtaMongodbAgent() []*RTAMongoDBAgent { return nil } +func (x *ListAgentsResponse) GetRtaMysqlAgent() []*RTAMySQLAgent { + if x != nil { + return x.RtaMysqlAgent + } + return nil +} + type GetAgentRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Unique randomly generated instance identifier. @@ -3632,7 +3779,7 @@ type GetAgentRequest struct { func (x *GetAgentRequest) Reset() { *x = GetAgentRequest{} - mi := &file_inventory_v1_agents_proto_msgTypes[23] + mi := &file_inventory_v1_agents_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3644,7 +3791,7 @@ func (x *GetAgentRequest) String() string { func (*GetAgentRequest) ProtoMessage() {} func (x *GetAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[23] + mi := &file_inventory_v1_agents_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3657,7 +3804,7 @@ func (x *GetAgentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAgentRequest.ProtoReflect.Descriptor instead. func (*GetAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{23} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{24} } func (x *GetAgentRequest) GetAgentId() string { @@ -3690,6 +3837,7 @@ type GetAgentResponse struct { // *GetAgentResponse_NomadAgent // *GetAgentResponse_ValkeyExporter // *GetAgentResponse_RtaMongodbAgent + // *GetAgentResponse_RtaMysqlAgent Agent isGetAgentResponse_Agent `protobuf_oneof:"agent"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -3697,7 +3845,7 @@ type GetAgentResponse struct { func (x *GetAgentResponse) Reset() { *x = GetAgentResponse{} - mi := &file_inventory_v1_agents_proto_msgTypes[24] + mi := &file_inventory_v1_agents_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3709,7 +3857,7 @@ func (x *GetAgentResponse) String() string { func (*GetAgentResponse) ProtoMessage() {} func (x *GetAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[24] + mi := &file_inventory_v1_agents_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3722,7 +3870,7 @@ func (x *GetAgentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAgentResponse.ProtoReflect.Descriptor instead. func (*GetAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{24} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{25} } func (x *GetAgentResponse) GetAgent() isGetAgentResponse_Agent { @@ -3903,6 +4051,15 @@ func (x *GetAgentResponse) GetRtaMongodbAgent() *RTAMongoDBAgent { return nil } +func (x *GetAgentResponse) GetRtaMysqlAgent() *RTAMySQLAgent { + if x != nil { + if x, ok := x.Agent.(*GetAgentResponse_RtaMysqlAgent); ok { + return x.RtaMysqlAgent + } + } + return nil +} + type isGetAgentResponse_Agent interface { isGetAgentResponse_Agent() } @@ -3983,6 +4140,10 @@ type GetAgentResponse_RtaMongodbAgent struct { RtaMongodbAgent *RTAMongoDBAgent `protobuf:"bytes,19,opt,name=rta_mongodb_agent,json=rtaMongodbAgent,proto3,oneof"` } +type GetAgentResponse_RtaMysqlAgent struct { + RtaMysqlAgent *RTAMySQLAgent `protobuf:"bytes,20,opt,name=rta_mysql_agent,json=rtaMysqlAgent,proto3,oneof"` +} + func (*GetAgentResponse_PmmAgent) isGetAgentResponse_Agent() {} func (*GetAgentResponse_Vmagent) isGetAgentResponse_Agent() {} @@ -4021,6 +4182,8 @@ func (*GetAgentResponse_ValkeyExporter) isGetAgentResponse_Agent() {} func (*GetAgentResponse_RtaMongodbAgent) isGetAgentResponse_Agent() {} +func (*GetAgentResponse_RtaMysqlAgent) isGetAgentResponse_Agent() {} + type GetAgentLogsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` // Unique randomly generated instance identifier. @@ -4033,7 +4196,7 @@ type GetAgentLogsRequest struct { func (x *GetAgentLogsRequest) Reset() { *x = GetAgentLogsRequest{} - mi := &file_inventory_v1_agents_proto_msgTypes[25] + mi := &file_inventory_v1_agents_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4045,7 +4208,7 @@ func (x *GetAgentLogsRequest) String() string { func (*GetAgentLogsRequest) ProtoMessage() {} func (x *GetAgentLogsRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[25] + mi := &file_inventory_v1_agents_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4058,7 +4221,7 @@ func (x *GetAgentLogsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAgentLogsRequest.ProtoReflect.Descriptor instead. func (*GetAgentLogsRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{25} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{26} } func (x *GetAgentLogsRequest) GetAgentId() string { @@ -4085,7 +4248,7 @@ type GetAgentLogsResponse struct { func (x *GetAgentLogsResponse) Reset() { *x = GetAgentLogsResponse{} - mi := &file_inventory_v1_agents_proto_msgTypes[26] + mi := &file_inventory_v1_agents_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4097,7 +4260,7 @@ func (x *GetAgentLogsResponse) String() string { func (*GetAgentLogsResponse) ProtoMessage() {} func (x *GetAgentLogsResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[26] + mi := &file_inventory_v1_agents_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4110,7 +4273,7 @@ func (x *GetAgentLogsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAgentLogsResponse.ProtoReflect.Descriptor instead. func (*GetAgentLogsResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{26} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{27} } func (x *GetAgentLogsResponse) GetLogs() []string { @@ -4148,6 +4311,7 @@ type AddAgentRequest struct { // *AddAgentRequest_QanPostgresqlPgstatmonitorAgent // *AddAgentRequest_ValkeyExporter // *AddAgentRequest_RtaMongodbAgent + // *AddAgentRequest_RtaMysqlAgent Agent isAddAgentRequest_Agent `protobuf_oneof:"agent"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -4155,7 +4319,7 @@ type AddAgentRequest struct { func (x *AddAgentRequest) Reset() { *x = AddAgentRequest{} - mi := &file_inventory_v1_agents_proto_msgTypes[27] + mi := &file_inventory_v1_agents_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4167,7 +4331,7 @@ func (x *AddAgentRequest) String() string { func (*AddAgentRequest) ProtoMessage() {} func (x *AddAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[27] + mi := &file_inventory_v1_agents_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4180,7 +4344,7 @@ func (x *AddAgentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddAgentRequest.ProtoReflect.Descriptor instead. func (*AddAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{27} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{28} } func (x *AddAgentRequest) GetAgent() isAddAgentRequest_Agent { @@ -4343,6 +4507,15 @@ func (x *AddAgentRequest) GetRtaMongodbAgent() *AddRTAMongoDBAgentParams { return nil } +func (x *AddAgentRequest) GetRtaMysqlAgent() *AddRTAMySQLAgentParams { + if x != nil { + if x, ok := x.Agent.(*AddAgentRequest_RtaMysqlAgent); ok { + return x.RtaMysqlAgent + } + } + return nil +} + type isAddAgentRequest_Agent interface { isAddAgentRequest_Agent() } @@ -4415,6 +4588,10 @@ type AddAgentRequest_RtaMongodbAgent struct { RtaMongodbAgent *AddRTAMongoDBAgentParams `protobuf:"bytes,17,opt,name=rta_mongodb_agent,json=rtaMongodbAgent,proto3,oneof"` } +type AddAgentRequest_RtaMysqlAgent struct { + RtaMysqlAgent *AddRTAMySQLAgentParams `protobuf:"bytes,18,opt,name=rta_mysql_agent,json=rtaMysqlAgent,proto3,oneof"` +} + func (*AddAgentRequest_PmmAgent) isAddAgentRequest_Agent() {} func (*AddAgentRequest_NodeExporter) isAddAgentRequest_Agent() {} @@ -4449,6 +4626,8 @@ func (*AddAgentRequest_ValkeyExporter) isAddAgentRequest_Agent() {} func (*AddAgentRequest_RtaMongodbAgent) isAddAgentRequest_Agent() {} +func (*AddAgentRequest_RtaMysqlAgent) isAddAgentRequest_Agent() {} + type AddAgentResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Agent: @@ -4470,6 +4649,7 @@ type AddAgentResponse struct { // *AddAgentResponse_QanPostgresqlPgstatmonitorAgent // *AddAgentResponse_ValkeyExporter // *AddAgentResponse_RtaMongodbAgent + // *AddAgentResponse_RtaMysqlAgent Agent isAddAgentResponse_Agent `protobuf_oneof:"agent"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -4477,7 +4657,7 @@ type AddAgentResponse struct { func (x *AddAgentResponse) Reset() { *x = AddAgentResponse{} - mi := &file_inventory_v1_agents_proto_msgTypes[28] + mi := &file_inventory_v1_agents_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4489,7 +4669,7 @@ func (x *AddAgentResponse) String() string { func (*AddAgentResponse) ProtoMessage() {} func (x *AddAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[28] + mi := &file_inventory_v1_agents_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4502,7 +4682,7 @@ func (x *AddAgentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddAgentResponse.ProtoReflect.Descriptor instead. func (*AddAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{28} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{29} } func (x *AddAgentResponse) GetAgent() isAddAgentResponse_Agent { @@ -4665,6 +4845,15 @@ func (x *AddAgentResponse) GetRtaMongodbAgent() *RTAMongoDBAgent { return nil } +func (x *AddAgentResponse) GetRtaMysqlAgent() *RTAMySQLAgent { + if x != nil { + if x, ok := x.Agent.(*AddAgentResponse_RtaMysqlAgent); ok { + return x.RtaMysqlAgent + } + } + return nil +} + type isAddAgentResponse_Agent interface { isAddAgentResponse_Agent() } @@ -4737,6 +4926,10 @@ type AddAgentResponse_RtaMongodbAgent struct { RtaMongodbAgent *RTAMongoDBAgent `protobuf:"bytes,17,opt,name=rta_mongodb_agent,json=rtaMongodbAgent,proto3,oneof"` } +type AddAgentResponse_RtaMysqlAgent struct { + RtaMysqlAgent *RTAMySQLAgent `protobuf:"bytes,18,opt,name=rta_mysql_agent,json=rtaMysqlAgent,proto3,oneof"` +} + func (*AddAgentResponse_PmmAgent) isAddAgentResponse_Agent() {} func (*AddAgentResponse_NodeExporter) isAddAgentResponse_Agent() {} @@ -4771,6 +4964,8 @@ func (*AddAgentResponse_ValkeyExporter) isAddAgentResponse_Agent() {} func (*AddAgentResponse_RtaMongodbAgent) isAddAgentResponse_Agent() {} +func (*AddAgentResponse_RtaMysqlAgent) isAddAgentResponse_Agent() {} + type ChangeAgentRequest struct { state protoimpl.MessageState `protogen:"open.v1"` AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` @@ -4793,6 +4988,7 @@ type ChangeAgentRequest struct { // *ChangeAgentRequest_NomadAgent // *ChangeAgentRequest_ValkeyExporter // *ChangeAgentRequest_RtaMongodbAgent + // *ChangeAgentRequest_RtaMysqlAgent Agent isChangeAgentRequest_Agent `protobuf_oneof:"agent"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -4800,7 +4996,7 @@ type ChangeAgentRequest struct { func (x *ChangeAgentRequest) Reset() { *x = ChangeAgentRequest{} - mi := &file_inventory_v1_agents_proto_msgTypes[29] + mi := &file_inventory_v1_agents_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4812,7 +5008,7 @@ func (x *ChangeAgentRequest) String() string { func (*ChangeAgentRequest) ProtoMessage() {} func (x *ChangeAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[29] + mi := &file_inventory_v1_agents_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4825,7 +5021,7 @@ func (x *ChangeAgentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeAgentRequest.ProtoReflect.Descriptor instead. func (*ChangeAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{29} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{30} } func (x *ChangeAgentRequest) GetAgentId() string { @@ -4995,6 +5191,15 @@ func (x *ChangeAgentRequest) GetRtaMongodbAgent() *ChangeRTAMongoDBAgentParams { return nil } +func (x *ChangeAgentRequest) GetRtaMysqlAgent() *ChangeRTAMySQLAgentParams { + if x != nil { + if x, ok := x.Agent.(*ChangeAgentRequest_RtaMysqlAgent); ok { + return x.RtaMysqlAgent + } + } + return nil +} + type isChangeAgentRequest_Agent interface { isChangeAgentRequest_Agent() } @@ -5067,6 +5272,10 @@ type ChangeAgentRequest_RtaMongodbAgent struct { RtaMongodbAgent *ChangeRTAMongoDBAgentParams `protobuf:"bytes,18,opt,name=rta_mongodb_agent,json=rtaMongodbAgent,proto3,oneof"` } +type ChangeAgentRequest_RtaMysqlAgent struct { + RtaMysqlAgent *ChangeRTAMySQLAgentParams `protobuf:"bytes,19,opt,name=rta_mysql_agent,json=rtaMysqlAgent,proto3,oneof"` +} + func (*ChangeAgentRequest_NodeExporter) isChangeAgentRequest_Agent() {} func (*ChangeAgentRequest_MysqldExporter) isChangeAgentRequest_Agent() {} @@ -5101,6 +5310,8 @@ func (*ChangeAgentRequest_ValkeyExporter) isChangeAgentRequest_Agent() {} func (*ChangeAgentRequest_RtaMongodbAgent) isChangeAgentRequest_Agent() {} +func (*ChangeAgentRequest_RtaMysqlAgent) isChangeAgentRequest_Agent() {} + type ChangeAgentResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // Types that are valid to be assigned to Agent: @@ -5122,6 +5333,7 @@ type ChangeAgentResponse struct { // *ChangeAgentResponse_NomadAgent // *ChangeAgentResponse_ValkeyExporter // *ChangeAgentResponse_RtaMongodbAgent + // *ChangeAgentResponse_RtaMysqlAgent Agent isChangeAgentResponse_Agent `protobuf_oneof:"agent"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -5129,7 +5341,7 @@ type ChangeAgentResponse struct { func (x *ChangeAgentResponse) Reset() { *x = ChangeAgentResponse{} - mi := &file_inventory_v1_agents_proto_msgTypes[30] + mi := &file_inventory_v1_agents_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5141,7 +5353,7 @@ func (x *ChangeAgentResponse) String() string { func (*ChangeAgentResponse) ProtoMessage() {} func (x *ChangeAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[30] + mi := &file_inventory_v1_agents_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5154,7 +5366,7 @@ func (x *ChangeAgentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeAgentResponse.ProtoReflect.Descriptor instead. func (*ChangeAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{30} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{31} } func (x *ChangeAgentResponse) GetAgent() isChangeAgentResponse_Agent { @@ -5317,10 +5529,19 @@ func (x *ChangeAgentResponse) GetRtaMongodbAgent() *RTAMongoDBAgent { return nil } -type isChangeAgentResponse_Agent interface { - isChangeAgentResponse_Agent() -} - +func (x *ChangeAgentResponse) GetRtaMysqlAgent() *RTAMySQLAgent { + if x != nil { + if x, ok := x.Agent.(*ChangeAgentResponse_RtaMysqlAgent); ok { + return x.RtaMysqlAgent + } + } + return nil +} + +type isChangeAgentResponse_Agent interface { + isChangeAgentResponse_Agent() +} + type ChangeAgentResponse_NodeExporter struct { NodeExporter *NodeExporter `protobuf:"bytes,2,opt,name=node_exporter,json=nodeExporter,proto3,oneof"` } @@ -5389,6 +5610,10 @@ type ChangeAgentResponse_RtaMongodbAgent struct { RtaMongodbAgent *RTAMongoDBAgent `protobuf:"bytes,18,opt,name=rta_mongodb_agent,json=rtaMongodbAgent,proto3,oneof"` } +type ChangeAgentResponse_RtaMysqlAgent struct { + RtaMysqlAgent *RTAMySQLAgent `protobuf:"bytes,19,opt,name=rta_mysql_agent,json=rtaMysqlAgent,proto3,oneof"` +} + func (*ChangeAgentResponse_NodeExporter) isChangeAgentResponse_Agent() {} func (*ChangeAgentResponse_MysqldExporter) isChangeAgentResponse_Agent() {} @@ -5423,6 +5648,8 @@ func (*ChangeAgentResponse_ValkeyExporter) isChangeAgentResponse_Agent() {} func (*ChangeAgentResponse_RtaMongodbAgent) isChangeAgentResponse_Agent() {} +func (*ChangeAgentResponse_RtaMysqlAgent) isChangeAgentResponse_Agent() {} + type AddPMMAgentParams struct { state protoimpl.MessageState `protogen:"open.v1"` // Node identifier where this instance runs. @@ -5435,7 +5662,7 @@ type AddPMMAgentParams struct { func (x *AddPMMAgentParams) Reset() { *x = AddPMMAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[31] + mi := &file_inventory_v1_agents_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5447,7 +5674,7 @@ func (x *AddPMMAgentParams) String() string { func (*AddPMMAgentParams) ProtoMessage() {} func (x *AddPMMAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[31] + mi := &file_inventory_v1_agents_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5460,7 +5687,7 @@ func (x *AddPMMAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddPMMAgentParams.ProtoReflect.Descriptor instead. func (*AddPMMAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{31} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{32} } func (x *AddPMMAgentParams) GetRunsOnNodeId() string { @@ -5497,7 +5724,7 @@ type AddNodeExporterParams struct { func (x *AddNodeExporterParams) Reset() { *x = AddNodeExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[32] + mi := &file_inventory_v1_agents_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5509,7 +5736,7 @@ func (x *AddNodeExporterParams) String() string { func (*AddNodeExporterParams) ProtoMessage() {} func (x *AddNodeExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[32] + mi := &file_inventory_v1_agents_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5522,7 +5749,7 @@ func (x *AddNodeExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddNodeExporterParams.ProtoReflect.Descriptor instead. func (*AddNodeExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{32} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{33} } func (x *AddNodeExporterParams) GetPmmAgentId() string { @@ -5589,7 +5816,7 @@ type ChangeNodeExporterParams struct { func (x *ChangeNodeExporterParams) Reset() { *x = ChangeNodeExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[33] + mi := &file_inventory_v1_agents_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5601,7 +5828,7 @@ func (x *ChangeNodeExporterParams) String() string { func (*ChangeNodeExporterParams) ProtoMessage() {} func (x *ChangeNodeExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[33] + mi := &file_inventory_v1_agents_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5614,7 +5841,7 @@ func (x *ChangeNodeExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeNodeExporterParams.ProtoReflect.Descriptor instead. func (*ChangeNodeExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{33} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{34} } func (x *ChangeNodeExporterParams) GetEnable() bool { @@ -5714,7 +5941,7 @@ type AddMySQLdExporterParams struct { func (x *AddMySQLdExporterParams) Reset() { *x = AddMySQLdExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[34] + mi := &file_inventory_v1_agents_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5726,7 +5953,7 @@ func (x *AddMySQLdExporterParams) String() string { func (*AddMySQLdExporterParams) ProtoMessage() {} func (x *AddMySQLdExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[34] + mi := &file_inventory_v1_agents_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5739,7 +5966,7 @@ func (x *AddMySQLdExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddMySQLdExporterParams.ProtoReflect.Descriptor instead. func (*AddMySQLdExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{34} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{35} } func (x *AddMySQLdExporterParams) GetPmmAgentId() string { @@ -5919,7 +6146,7 @@ type ChangeMySQLdExporterParams struct { func (x *ChangeMySQLdExporterParams) Reset() { *x = ChangeMySQLdExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[35] + mi := &file_inventory_v1_agents_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5931,7 +6158,7 @@ func (x *ChangeMySQLdExporterParams) String() string { func (*ChangeMySQLdExporterParams) ProtoMessage() {} func (x *ChangeMySQLdExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[35] + mi := &file_inventory_v1_agents_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5944,7 +6171,7 @@ func (x *ChangeMySQLdExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeMySQLdExporterParams.ProtoReflect.Descriptor instead. func (*ChangeMySQLdExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{35} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{36} } func (x *ChangeMySQLdExporterParams) GetEnable() bool { @@ -6133,7 +6360,7 @@ type AddMongoDBExporterParams struct { func (x *AddMongoDBExporterParams) Reset() { *x = AddMongoDBExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[36] + mi := &file_inventory_v1_agents_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6145,7 +6372,7 @@ func (x *AddMongoDBExporterParams) String() string { func (*AddMongoDBExporterParams) ProtoMessage() {} func (x *AddMongoDBExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[36] + mi := &file_inventory_v1_agents_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6158,7 +6385,7 @@ func (x *AddMongoDBExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddMongoDBExporterParams.ProtoReflect.Descriptor instead. func (*AddMongoDBExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{36} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{37} } func (x *AddMongoDBExporterParams) GetPmmAgentId() string { @@ -6383,7 +6610,7 @@ type ChangeMongoDBExporterParams struct { func (x *ChangeMongoDBExporterParams) Reset() { *x = ChangeMongoDBExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[37] + mi := &file_inventory_v1_agents_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6395,7 +6622,7 @@ func (x *ChangeMongoDBExporterParams) String() string { func (*ChangeMongoDBExporterParams) ProtoMessage() {} func (x *ChangeMongoDBExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[37] + mi := &file_inventory_v1_agents_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6408,7 +6635,7 @@ func (x *ChangeMongoDBExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeMongoDBExporterParams.ProtoReflect.Descriptor instead. func (*ChangeMongoDBExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{37} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{38} } func (x *ChangeMongoDBExporterParams) GetEnable() bool { @@ -6618,7 +6845,7 @@ type AddPostgresExporterParams struct { func (x *AddPostgresExporterParams) Reset() { *x = AddPostgresExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[38] + mi := &file_inventory_v1_agents_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6630,7 +6857,7 @@ func (x *AddPostgresExporterParams) String() string { func (*AddPostgresExporterParams) ProtoMessage() {} func (x *AddPostgresExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[38] + mi := &file_inventory_v1_agents_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6643,7 +6870,7 @@ func (x *AddPostgresExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddPostgresExporterParams.ProtoReflect.Descriptor instead. func (*AddPostgresExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{38} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{39} } func (x *AddPostgresExporterParams) GetPmmAgentId() string { @@ -6825,7 +7052,7 @@ type ChangePostgresExporterParams struct { func (x *ChangePostgresExporterParams) Reset() { *x = ChangePostgresExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[39] + mi := &file_inventory_v1_agents_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6837,7 +7064,7 @@ func (x *ChangePostgresExporterParams) String() string { func (*ChangePostgresExporterParams) ProtoMessage() {} func (x *ChangePostgresExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[39] + mi := &file_inventory_v1_agents_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6850,7 +7077,7 @@ func (x *ChangePostgresExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangePostgresExporterParams.ProtoReflect.Descriptor instead. func (*ChangePostgresExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{39} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{40} } func (x *ChangePostgresExporterParams) GetEnable() bool { @@ -7022,7 +7249,7 @@ type AddProxySQLExporterParams struct { func (x *AddProxySQLExporterParams) Reset() { *x = AddProxySQLExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[40] + mi := &file_inventory_v1_agents_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7034,7 +7261,7 @@ func (x *AddProxySQLExporterParams) String() string { func (*AddProxySQLExporterParams) ProtoMessage() {} func (x *AddProxySQLExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[40] + mi := &file_inventory_v1_agents_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7047,7 +7274,7 @@ func (x *AddProxySQLExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddProxySQLExporterParams.ProtoReflect.Descriptor instead. func (*AddProxySQLExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{40} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{41} } func (x *AddProxySQLExporterParams) GetPmmAgentId() string { @@ -7184,7 +7411,7 @@ type ChangeProxySQLExporterParams struct { func (x *ChangeProxySQLExporterParams) Reset() { *x = ChangeProxySQLExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[41] + mi := &file_inventory_v1_agents_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7196,7 +7423,7 @@ func (x *ChangeProxySQLExporterParams) String() string { func (*ChangeProxySQLExporterParams) ProtoMessage() {} func (x *ChangeProxySQLExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[41] + mi := &file_inventory_v1_agents_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7209,7 +7436,7 @@ func (x *ChangeProxySQLExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeProxySQLExporterParams.ProtoReflect.Descriptor instead. func (*ChangeProxySQLExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{41} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{42} } func (x *ChangeProxySQLExporterParams) GetEnable() bool { @@ -7350,7 +7577,7 @@ type AddQANMySQLPerfSchemaAgentParams struct { func (x *AddQANMySQLPerfSchemaAgentParams) Reset() { *x = AddQANMySQLPerfSchemaAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[42] + mi := &file_inventory_v1_agents_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7362,7 +7589,7 @@ func (x *AddQANMySQLPerfSchemaAgentParams) String() string { func (*AddQANMySQLPerfSchemaAgentParams) ProtoMessage() {} func (x *AddQANMySQLPerfSchemaAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[42] + mi := &file_inventory_v1_agents_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7375,7 +7602,7 @@ func (x *AddQANMySQLPerfSchemaAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddQANMySQLPerfSchemaAgentParams.ProtoReflect.Descriptor instead. func (*AddQANMySQLPerfSchemaAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{42} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{43} } func (x *AddQANMySQLPerfSchemaAgentParams) GetPmmAgentId() string { @@ -7530,7 +7757,7 @@ type ChangeQANMySQLPerfSchemaAgentParams struct { func (x *ChangeQANMySQLPerfSchemaAgentParams) Reset() { *x = ChangeQANMySQLPerfSchemaAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[43] + mi := &file_inventory_v1_agents_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7542,7 +7769,7 @@ func (x *ChangeQANMySQLPerfSchemaAgentParams) String() string { func (*ChangeQANMySQLPerfSchemaAgentParams) ProtoMessage() {} func (x *ChangeQANMySQLPerfSchemaAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[43] + mi := &file_inventory_v1_agents_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7555,7 +7782,7 @@ func (x *ChangeQANMySQLPerfSchemaAgentParams) ProtoReflect() protoreflect.Messag // Deprecated: Use ChangeQANMySQLPerfSchemaAgentParams.ProtoReflect.Descriptor instead. func (*ChangeQANMySQLPerfSchemaAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{43} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{44} } func (x *ChangeQANMySQLPerfSchemaAgentParams) GetEnable() bool { @@ -7713,7 +7940,7 @@ type AddQANMySQLSlowlogAgentParams struct { func (x *AddQANMySQLSlowlogAgentParams) Reset() { *x = AddQANMySQLSlowlogAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[44] + mi := &file_inventory_v1_agents_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7725,7 +7952,7 @@ func (x *AddQANMySQLSlowlogAgentParams) String() string { func (*AddQANMySQLSlowlogAgentParams) ProtoMessage() {} func (x *AddQANMySQLSlowlogAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[44] + mi := &file_inventory_v1_agents_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7738,7 +7965,7 @@ func (x *AddQANMySQLSlowlogAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddQANMySQLSlowlogAgentParams.ProtoReflect.Descriptor instead. func (*AddQANMySQLSlowlogAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{44} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{45} } func (x *AddQANMySQLSlowlogAgentParams) GetPmmAgentId() string { @@ -7902,7 +8129,7 @@ type ChangeQANMySQLSlowlogAgentParams struct { func (x *ChangeQANMySQLSlowlogAgentParams) Reset() { *x = ChangeQANMySQLSlowlogAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[45] + mi := &file_inventory_v1_agents_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7914,7 +8141,7 @@ func (x *ChangeQANMySQLSlowlogAgentParams) String() string { func (*ChangeQANMySQLSlowlogAgentParams) ProtoMessage() {} func (x *ChangeQANMySQLSlowlogAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[45] + mi := &file_inventory_v1_agents_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7927,7 +8154,7 @@ func (x *ChangeQANMySQLSlowlogAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeQANMySQLSlowlogAgentParams.ProtoReflect.Descriptor instead. func (*ChangeQANMySQLSlowlogAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{45} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{46} } func (x *ChangeQANMySQLSlowlogAgentParams) GetEnable() bool { @@ -8089,7 +8316,7 @@ type AddQANMongoDBProfilerAgentParams struct { func (x *AddQANMongoDBProfilerAgentParams) Reset() { *x = AddQANMongoDBProfilerAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[46] + mi := &file_inventory_v1_agents_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8101,7 +8328,7 @@ func (x *AddQANMongoDBProfilerAgentParams) String() string { func (*AddQANMongoDBProfilerAgentParams) ProtoMessage() {} func (x *AddQANMongoDBProfilerAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[46] + mi := &file_inventory_v1_agents_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8114,7 +8341,7 @@ func (x *AddQANMongoDBProfilerAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddQANMongoDBProfilerAgentParams.ProtoReflect.Descriptor instead. func (*AddQANMongoDBProfilerAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{46} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{47} } func (x *AddQANMongoDBProfilerAgentParams) GetPmmAgentId() string { @@ -8262,7 +8489,7 @@ type ChangeQANMongoDBProfilerAgentParams struct { func (x *ChangeQANMongoDBProfilerAgentParams) Reset() { *x = ChangeQANMongoDBProfilerAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[47] + mi := &file_inventory_v1_agents_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8274,7 +8501,7 @@ func (x *ChangeQANMongoDBProfilerAgentParams) String() string { func (*ChangeQANMongoDBProfilerAgentParams) ProtoMessage() {} func (x *ChangeQANMongoDBProfilerAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[47] + mi := &file_inventory_v1_agents_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8287,7 +8514,7 @@ func (x *ChangeQANMongoDBProfilerAgentParams) ProtoReflect() protoreflect.Messag // Deprecated: Use ChangeQANMongoDBProfilerAgentParams.ProtoReflect.Descriptor instead. func (*ChangeQANMongoDBProfilerAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{47} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{48} } func (x *ChangeQANMongoDBProfilerAgentParams) GetEnable() bool { @@ -8442,7 +8669,7 @@ type AddQANMongoDBMongologAgentParams struct { func (x *AddQANMongoDBMongologAgentParams) Reset() { *x = AddQANMongoDBMongologAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[48] + mi := &file_inventory_v1_agents_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8454,7 +8681,7 @@ func (x *AddQANMongoDBMongologAgentParams) String() string { func (*AddQANMongoDBMongologAgentParams) ProtoMessage() {} func (x *AddQANMongoDBMongologAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[48] + mi := &file_inventory_v1_agents_proto_msgTypes[49] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8467,7 +8694,7 @@ func (x *AddQANMongoDBMongologAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddQANMongoDBMongologAgentParams.ProtoReflect.Descriptor instead. func (*AddQANMongoDBMongologAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{48} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{49} } func (x *AddQANMongoDBMongologAgentParams) GetPmmAgentId() string { @@ -8615,7 +8842,7 @@ type ChangeQANMongoDBMongologAgentParams struct { func (x *ChangeQANMongoDBMongologAgentParams) Reset() { *x = ChangeQANMongoDBMongologAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[49] + mi := &file_inventory_v1_agents_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8627,7 +8854,7 @@ func (x *ChangeQANMongoDBMongologAgentParams) String() string { func (*ChangeQANMongoDBMongologAgentParams) ProtoMessage() {} func (x *ChangeQANMongoDBMongologAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[49] + mi := &file_inventory_v1_agents_proto_msgTypes[50] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8640,7 +8867,7 @@ func (x *ChangeQANMongoDBMongologAgentParams) ProtoReflect() protoreflect.Messag // Deprecated: Use ChangeQANMongoDBMongologAgentParams.ProtoReflect.Descriptor instead. func (*ChangeQANMongoDBMongologAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{49} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{50} } func (x *ChangeQANMongoDBMongologAgentParams) GetEnable() bool { @@ -8791,7 +9018,7 @@ type AddQANPostgreSQLPgStatementsAgentParams struct { func (x *AddQANPostgreSQLPgStatementsAgentParams) Reset() { *x = AddQANPostgreSQLPgStatementsAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[50] + mi := &file_inventory_v1_agents_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8803,7 +9030,7 @@ func (x *AddQANPostgreSQLPgStatementsAgentParams) String() string { func (*AddQANPostgreSQLPgStatementsAgentParams) ProtoMessage() {} func (x *AddQANPostgreSQLPgStatementsAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[50] + mi := &file_inventory_v1_agents_proto_msgTypes[51] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8816,7 +9043,7 @@ func (x *AddQANPostgreSQLPgStatementsAgentParams) ProtoReflect() protoreflect.Me // Deprecated: Use AddQANPostgreSQLPgStatementsAgentParams.ProtoReflect.Descriptor instead. func (*AddQANPostgreSQLPgStatementsAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{50} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{51} } func (x *AddQANPostgreSQLPgStatementsAgentParams) GetPmmAgentId() string { @@ -8955,7 +9182,7 @@ type ChangeQANPostgreSQLPgStatementsAgentParams struct { func (x *ChangeQANPostgreSQLPgStatementsAgentParams) Reset() { *x = ChangeQANPostgreSQLPgStatementsAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[51] + mi := &file_inventory_v1_agents_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8967,7 +9194,7 @@ func (x *ChangeQANPostgreSQLPgStatementsAgentParams) String() string { func (*ChangeQANPostgreSQLPgStatementsAgentParams) ProtoMessage() {} func (x *ChangeQANPostgreSQLPgStatementsAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[51] + mi := &file_inventory_v1_agents_proto_msgTypes[52] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8980,7 +9207,7 @@ func (x *ChangeQANPostgreSQLPgStatementsAgentParams) ProtoReflect() protoreflect // Deprecated: Use ChangeQANPostgreSQLPgStatementsAgentParams.ProtoReflect.Descriptor instead. func (*ChangeQANPostgreSQLPgStatementsAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{51} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{52} } func (x *ChangeQANPostgreSQLPgStatementsAgentParams) GetEnable() bool { @@ -9126,7 +9353,7 @@ type AddQANPostgreSQLPgStatMonitorAgentParams struct { func (x *AddQANPostgreSQLPgStatMonitorAgentParams) Reset() { *x = AddQANPostgreSQLPgStatMonitorAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[52] + mi := &file_inventory_v1_agents_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9138,7 +9365,7 @@ func (x *AddQANPostgreSQLPgStatMonitorAgentParams) String() string { func (*AddQANPostgreSQLPgStatMonitorAgentParams) ProtoMessage() {} func (x *AddQANPostgreSQLPgStatMonitorAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[52] + mi := &file_inventory_v1_agents_proto_msgTypes[53] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9151,7 +9378,7 @@ func (x *AddQANPostgreSQLPgStatMonitorAgentParams) ProtoReflect() protoreflect.M // Deprecated: Use AddQANPostgreSQLPgStatMonitorAgentParams.ProtoReflect.Descriptor instead. func (*AddQANPostgreSQLPgStatMonitorAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{52} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{53} } func (x *AddQANPostgreSQLPgStatMonitorAgentParams) GetPmmAgentId() string { @@ -9299,7 +9526,7 @@ type ChangeQANPostgreSQLPgStatMonitorAgentParams struct { func (x *ChangeQANPostgreSQLPgStatMonitorAgentParams) Reset() { *x = ChangeQANPostgreSQLPgStatMonitorAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[53] + mi := &file_inventory_v1_agents_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9311,7 +9538,7 @@ func (x *ChangeQANPostgreSQLPgStatMonitorAgentParams) String() string { func (*ChangeQANPostgreSQLPgStatMonitorAgentParams) ProtoMessage() {} func (x *ChangeQANPostgreSQLPgStatMonitorAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[53] + mi := &file_inventory_v1_agents_proto_msgTypes[54] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9324,7 +9551,7 @@ func (x *ChangeQANPostgreSQLPgStatMonitorAgentParams) ProtoReflect() protoreflec // Deprecated: Use ChangeQANPostgreSQLPgStatMonitorAgentParams.ProtoReflect.Descriptor instead. func (*ChangeQANPostgreSQLPgStatMonitorAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{53} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{54} } func (x *ChangeQANPostgreSQLPgStatMonitorAgentParams) GetEnable() bool { @@ -9467,7 +9694,7 @@ type AddRDSExporterParams struct { func (x *AddRDSExporterParams) Reset() { *x = AddRDSExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[54] + mi := &file_inventory_v1_agents_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9479,7 +9706,7 @@ func (x *AddRDSExporterParams) String() string { func (*AddRDSExporterParams) ProtoMessage() {} func (x *AddRDSExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[54] + mi := &file_inventory_v1_agents_proto_msgTypes[55] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9492,7 +9719,7 @@ func (x *AddRDSExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddRDSExporterParams.ProtoReflect.Descriptor instead. func (*AddRDSExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{54} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{55} } func (x *AddRDSExporterParams) GetPmmAgentId() string { @@ -9591,7 +9818,7 @@ type ChangeRDSExporterParams struct { func (x *ChangeRDSExporterParams) Reset() { *x = ChangeRDSExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[55] + mi := &file_inventory_v1_agents_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9603,7 +9830,7 @@ func (x *ChangeRDSExporterParams) String() string { func (*ChangeRDSExporterParams) ProtoMessage() {} func (x *ChangeRDSExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[55] + mi := &file_inventory_v1_agents_proto_msgTypes[56] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9616,7 +9843,7 @@ func (x *ChangeRDSExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeRDSExporterParams.ProtoReflect.Descriptor instead. func (*ChangeRDSExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{55} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{56} } func (x *ChangeRDSExporterParams) GetEnable() bool { @@ -9710,7 +9937,7 @@ type AddExternalExporterParams struct { func (x *AddExternalExporterParams) Reset() { *x = AddExternalExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[56] + mi := &file_inventory_v1_agents_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9722,7 +9949,7 @@ func (x *AddExternalExporterParams) String() string { func (*AddExternalExporterParams) ProtoMessage() {} func (x *AddExternalExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[56] + mi := &file_inventory_v1_agents_proto_msgTypes[57] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9735,7 +9962,7 @@ func (x *AddExternalExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddExternalExporterParams.ProtoReflect.Descriptor instead. func (*AddExternalExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{56} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{57} } func (x *AddExternalExporterParams) GetRunsOnNodeId() string { @@ -9834,7 +10061,7 @@ type ChangeExternalExporterParams struct { func (x *ChangeExternalExporterParams) Reset() { *x = ChangeExternalExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[57] + mi := &file_inventory_v1_agents_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9846,7 +10073,7 @@ func (x *ChangeExternalExporterParams) String() string { func (*ChangeExternalExporterParams) ProtoMessage() {} func (x *ChangeExternalExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[57] + mi := &file_inventory_v1_agents_proto_msgTypes[58] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9859,7 +10086,7 @@ func (x *ChangeExternalExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeExternalExporterParams.ProtoReflect.Descriptor instead. func (*ChangeExternalExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{57} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{58} } func (x *ChangeExternalExporterParams) GetEnable() bool { @@ -9957,7 +10184,7 @@ type AddAzureDatabaseExporterParams struct { func (x *AddAzureDatabaseExporterParams) Reset() { *x = AddAzureDatabaseExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[58] + mi := &file_inventory_v1_agents_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9969,7 +10196,7 @@ func (x *AddAzureDatabaseExporterParams) String() string { func (*AddAzureDatabaseExporterParams) ProtoMessage() {} func (x *AddAzureDatabaseExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[58] + mi := &file_inventory_v1_agents_proto_msgTypes[59] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9982,7 +10209,7 @@ func (x *AddAzureDatabaseExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddAzureDatabaseExporterParams.ProtoReflect.Descriptor instead. func (*AddAzureDatabaseExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{58} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{59} } func (x *AddAzureDatabaseExporterParams) GetPmmAgentId() string { @@ -10097,7 +10324,7 @@ type ChangeAzureDatabaseExporterParams struct { func (x *ChangeAzureDatabaseExporterParams) Reset() { *x = ChangeAzureDatabaseExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[59] + mi := &file_inventory_v1_agents_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10109,7 +10336,7 @@ func (x *ChangeAzureDatabaseExporterParams) String() string { func (*ChangeAzureDatabaseExporterParams) ProtoMessage() {} func (x *ChangeAzureDatabaseExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[59] + mi := &file_inventory_v1_agents_proto_msgTypes[60] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10122,7 +10349,7 @@ func (x *ChangeAzureDatabaseExporterParams) ProtoReflect() protoreflect.Message // Deprecated: Use ChangeAzureDatabaseExporterParams.ProtoReflect.Descriptor instead. func (*ChangeAzureDatabaseExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{59} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{60} } func (x *ChangeAzureDatabaseExporterParams) GetEnable() bool { @@ -10205,7 +10432,7 @@ type ChangeNomadAgentParams struct { func (x *ChangeNomadAgentParams) Reset() { *x = ChangeNomadAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[60] + mi := &file_inventory_v1_agents_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10217,7 +10444,7 @@ func (x *ChangeNomadAgentParams) String() string { func (*ChangeNomadAgentParams) ProtoMessage() {} func (x *ChangeNomadAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[60] + mi := &file_inventory_v1_agents_proto_msgTypes[61] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10230,7 +10457,7 @@ func (x *ChangeNomadAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeNomadAgentParams.ProtoReflect.Descriptor instead. func (*ChangeNomadAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{60} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{61} } func (x *ChangeNomadAgentParams) GetEnable() bool { @@ -10282,7 +10509,7 @@ type AddValkeyExporterParams struct { func (x *AddValkeyExporterParams) Reset() { *x = AddValkeyExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[61] + mi := &file_inventory_v1_agents_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10294,7 +10521,7 @@ func (x *AddValkeyExporterParams) String() string { func (*AddValkeyExporterParams) ProtoMessage() {} func (x *AddValkeyExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[61] + mi := &file_inventory_v1_agents_proto_msgTypes[62] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10307,7 +10534,7 @@ func (x *AddValkeyExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddValkeyExporterParams.ProtoReflect.Descriptor instead. func (*AddValkeyExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{61} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{62} } func (x *AddValkeyExporterParams) GetPmmAgentId() string { @@ -10471,7 +10698,7 @@ type ChangeValkeyExporterParams struct { func (x *ChangeValkeyExporterParams) Reset() { *x = ChangeValkeyExporterParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[62] + mi := &file_inventory_v1_agents_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10483,7 +10710,7 @@ func (x *ChangeValkeyExporterParams) String() string { func (*ChangeValkeyExporterParams) ProtoMessage() {} func (x *ChangeValkeyExporterParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[62] + mi := &file_inventory_v1_agents_proto_msgTypes[63] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10496,7 +10723,7 @@ func (x *ChangeValkeyExporterParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeValkeyExporterParams.ProtoReflect.Descriptor instead. func (*ChangeValkeyExporterParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{62} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{63} } func (x *ChangeValkeyExporterParams) GetEnable() bool { @@ -10657,7 +10884,7 @@ type AddRTAMongoDBAgentParams struct { func (x *AddRTAMongoDBAgentParams) Reset() { *x = AddRTAMongoDBAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[63] + mi := &file_inventory_v1_agents_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10669,7 +10896,7 @@ func (x *AddRTAMongoDBAgentParams) String() string { func (*AddRTAMongoDBAgentParams) ProtoMessage() {} func (x *AddRTAMongoDBAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[63] + mi := &file_inventory_v1_agents_proto_msgTypes[64] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10682,7 +10909,7 @@ func (x *AddRTAMongoDBAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AddRTAMongoDBAgentParams.ProtoReflect.Descriptor instead. func (*AddRTAMongoDBAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{63} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{64} } func (x *AddRTAMongoDBAgentParams) GetPmmAgentId() string { @@ -10817,7 +11044,7 @@ type ChangeRTAMongoDBAgentParams struct { func (x *ChangeRTAMongoDBAgentParams) Reset() { *x = ChangeRTAMongoDBAgentParams{} - mi := &file_inventory_v1_agents_proto_msgTypes[64] + mi := &file_inventory_v1_agents_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10829,7 +11056,7 @@ func (x *ChangeRTAMongoDBAgentParams) String() string { func (*ChangeRTAMongoDBAgentParams) ProtoMessage() {} func (x *ChangeRTAMongoDBAgentParams) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[64] + mi := &file_inventory_v1_agents_proto_msgTypes[65] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10842,7 +11069,7 @@ func (x *ChangeRTAMongoDBAgentParams) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeRTAMongoDBAgentParams.ProtoReflect.Descriptor instead. func (*ChangeRTAMongoDBAgentParams) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{64} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{65} } func (x *ChangeRTAMongoDBAgentParams) GetEnable() bool { @@ -10936,30 +11163,54 @@ func (x *ChangeRTAMongoDBAgentParams) GetSkipConnectionCheck() bool { return false } -type RemoveAgentRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` - // Remove agent with all dependencies. - Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` +type AddRTAMySQLAgentParams struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The pmm-agent identifier which runs this instance. + PmmAgentId string `protobuf:"bytes,1,opt,name=pmm_agent_id,json=pmmAgentId,proto3" json:"pmm_agent_id,omitempty"` + // Service identifier. + ServiceId string `protobuf:"bytes,2,opt,name=service_id,json=serviceId,proto3" json:"service_id,omitempty"` + // MySQL username for getting queries data. + Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` + // MySQL password for getting queries data. + Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` + // Custom user-assigned labels. + CustomLabels map[string]string `protobuf:"bytes,5,rep,name=custom_labels,json=customLabels,proto3" json:"custom_labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + // Log level for agent. + LogLevel LogLevel `protobuf:"varint,6,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel" json:"log_level,omitempty"` + // MySQL specific options. + // Use TLS for database connections. + Tls bool `protobuf:"varint,7,opt,name=tls,proto3" json:"tls,omitempty"` + // Skip TLS certificate and hostname validation. + TlsSkipVerify bool `protobuf:"varint,8,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3" json:"tls_skip_verify,omitempty"` + // Certificate Authority certificate chain. + TlsCa string `protobuf:"bytes,9,opt,name=tls_ca,json=tlsCa,proto3" json:"tls_ca,omitempty"` + // Client certificate. + TlsCert string `protobuf:"bytes,10,opt,name=tls_cert,json=tlsCert,proto3" json:"tls_cert,omitempty"` + // Client key. + TlsKey string `protobuf:"bytes,11,opt,name=tls_key,json=tlsKey,proto3" json:"tls_key,omitempty"` + // Skip connection check. + SkipConnectionCheck bool `protobuf:"varint,12,opt,name=skip_connection_check,json=skipConnectionCheck,proto3" json:"skip_connection_check,omitempty"` + // Real-Time Analytics options. + RtaOptions *RTAOptions `protobuf:"bytes,13,opt,name=rta_options,json=rtaOptions,proto3" json:"rta_options,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } -func (x *RemoveAgentRequest) Reset() { - *x = RemoveAgentRequest{} - mi := &file_inventory_v1_agents_proto_msgTypes[65] +func (x *AddRTAMySQLAgentParams) Reset() { + *x = AddRTAMySQLAgentParams{} + mi := &file_inventory_v1_agents_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *RemoveAgentRequest) String() string { +func (x *AddRTAMySQLAgentParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveAgentRequest) ProtoMessage() {} +func (*AddRTAMySQLAgentParams) ProtoMessage() {} -func (x *RemoveAgentRequest) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[65] +func (x *AddRTAMySQLAgentParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[66] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10970,9 +11221,283 @@ func (x *RemoveAgentRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveAgentRequest.ProtoReflect.Descriptor instead. -func (*RemoveAgentRequest) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{65} +// Deprecated: Use AddRTAMySQLAgentParams.ProtoReflect.Descriptor instead. +func (*AddRTAMySQLAgentParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{66} +} + +func (x *AddRTAMySQLAgentParams) GetPmmAgentId() string { + if x != nil { + return x.PmmAgentId + } + return "" +} + +func (x *AddRTAMySQLAgentParams) GetServiceId() string { + if x != nil { + return x.ServiceId + } + return "" +} + +func (x *AddRTAMySQLAgentParams) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *AddRTAMySQLAgentParams) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *AddRTAMySQLAgentParams) GetCustomLabels() map[string]string { + if x != nil { + return x.CustomLabels + } + return nil +} + +func (x *AddRTAMySQLAgentParams) GetLogLevel() LogLevel { + if x != nil { + return x.LogLevel + } + return LogLevel_LOG_LEVEL_UNSPECIFIED +} + +func (x *AddRTAMySQLAgentParams) GetTls() bool { + if x != nil { + return x.Tls + } + return false +} + +func (x *AddRTAMySQLAgentParams) GetTlsSkipVerify() bool { + if x != nil { + return x.TlsSkipVerify + } + return false +} + +func (x *AddRTAMySQLAgentParams) GetTlsCa() string { + if x != nil { + return x.TlsCa + } + return "" +} + +func (x *AddRTAMySQLAgentParams) GetTlsCert() string { + if x != nil { + return x.TlsCert + } + return "" +} + +func (x *AddRTAMySQLAgentParams) GetTlsKey() string { + if x != nil { + return x.TlsKey + } + return "" +} + +func (x *AddRTAMySQLAgentParams) GetSkipConnectionCheck() bool { + if x != nil { + return x.SkipConnectionCheck + } + return false +} + +func (x *AddRTAMySQLAgentParams) GetRtaOptions() *RTAOptions { + if x != nil { + return x.RtaOptions + } + return nil +} + +type ChangeRTAMySQLAgentParams struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Replace all custom user-assigned labels. + CustomLabels *common.StringMap `protobuf:"bytes,2,opt,name=custom_labels,json=customLabels,proto3,oneof" json:"custom_labels,omitempty"` + // Log level for exporter. + LogLevel *LogLevel `protobuf:"varint,3,opt,name=log_level,json=logLevel,proto3,enum=inventory.v1.LogLevel,oneof" json:"log_level,omitempty"` + // MySQL username for getting queries data. + Username *string `protobuf:"bytes,4,opt,name=username,proto3,oneof" json:"username,omitempty"` + // MySQL password for getting queries data. + Password *string `protobuf:"bytes,5,opt,name=password,proto3,oneof" json:"password,omitempty"` + // Use TLS for database connections. + Tls *bool `protobuf:"varint,6,opt,name=tls,proto3,oneof" json:"tls,omitempty"` + // Skip TLS certificate and hostname validation. + TlsSkipVerify *bool `protobuf:"varint,7,opt,name=tls_skip_verify,json=tlsSkipVerify,proto3,oneof" json:"tls_skip_verify,omitempty"` + // Certificate Authority certificate chain. + TlsCa *string `protobuf:"bytes,8,opt,name=tls_ca,json=tlsCa,proto3,oneof" json:"tls_ca,omitempty"` + // Client certificate. + TlsCert *string `protobuf:"bytes,9,opt,name=tls_cert,json=tlsCert,proto3,oneof" json:"tls_cert,omitempty"` + // Client key. + TlsKey *string `protobuf:"bytes,10,opt,name=tls_key,json=tlsKey,proto3,oneof" json:"tls_key,omitempty"` + // Real-Time Analytics options. + RtaOptions *RTAOptions `protobuf:"bytes,11,opt,name=rta_options,json=rtaOptions,proto3,oneof" json:"rta_options,omitempty"` + // Skip connection check. + SkipConnectionCheck *bool `protobuf:"varint,12,opt,name=skip_connection_check,json=skipConnectionCheck,proto3,oneof" json:"skip_connection_check,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChangeRTAMySQLAgentParams) Reset() { + *x = ChangeRTAMySQLAgentParams{} + mi := &file_inventory_v1_agents_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChangeRTAMySQLAgentParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeRTAMySQLAgentParams) ProtoMessage() {} + +func (x *ChangeRTAMySQLAgentParams) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[67] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeRTAMySQLAgentParams.ProtoReflect.Descriptor instead. +func (*ChangeRTAMySQLAgentParams) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{67} +} + +func (x *ChangeRTAMySQLAgentParams) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable + } + return false +} + +func (x *ChangeRTAMySQLAgentParams) GetCustomLabels() *common.StringMap { + if x != nil { + return x.CustomLabels + } + return nil +} + +func (x *ChangeRTAMySQLAgentParams) GetLogLevel() LogLevel { + if x != nil && x.LogLevel != nil { + return *x.LogLevel + } + return LogLevel_LOG_LEVEL_UNSPECIFIED +} + +func (x *ChangeRTAMySQLAgentParams) GetUsername() string { + if x != nil && x.Username != nil { + return *x.Username + } + return "" +} + +func (x *ChangeRTAMySQLAgentParams) GetPassword() string { + if x != nil && x.Password != nil { + return *x.Password + } + return "" +} + +func (x *ChangeRTAMySQLAgentParams) GetTls() bool { + if x != nil && x.Tls != nil { + return *x.Tls + } + return false +} + +func (x *ChangeRTAMySQLAgentParams) GetTlsSkipVerify() bool { + if x != nil && x.TlsSkipVerify != nil { + return *x.TlsSkipVerify + } + return false +} + +func (x *ChangeRTAMySQLAgentParams) GetTlsCa() string { + if x != nil && x.TlsCa != nil { + return *x.TlsCa + } + return "" +} + +func (x *ChangeRTAMySQLAgentParams) GetTlsCert() string { + if x != nil && x.TlsCert != nil { + return *x.TlsCert + } + return "" +} + +func (x *ChangeRTAMySQLAgentParams) GetTlsKey() string { + if x != nil && x.TlsKey != nil { + return *x.TlsKey + } + return "" +} + +func (x *ChangeRTAMySQLAgentParams) GetRtaOptions() *RTAOptions { + if x != nil { + return x.RtaOptions + } + return nil +} + +func (x *ChangeRTAMySQLAgentParams) GetSkipConnectionCheck() bool { + if x != nil && x.SkipConnectionCheck != nil { + return *x.SkipConnectionCheck + } + return false +} + +type RemoveAgentRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + AgentId string `protobuf:"bytes,1,opt,name=agent_id,json=agentId,proto3" json:"agent_id,omitempty"` + // Remove agent with all dependencies. + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RemoveAgentRequest) Reset() { + *x = RemoveAgentRequest{} + mi := &file_inventory_v1_agents_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoveAgentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveAgentRequest) ProtoMessage() {} + +func (x *RemoveAgentRequest) ProtoReflect() protoreflect.Message { + mi := &file_inventory_v1_agents_proto_msgTypes[68] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveAgentRequest.ProtoReflect.Descriptor instead. +func (*RemoveAgentRequest) Descriptor() ([]byte, []int) { + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{68} } func (x *RemoveAgentRequest) GetAgentId() string { @@ -10997,7 +11522,7 @@ type RemoveAgentResponse struct { func (x *RemoveAgentResponse) Reset() { *x = RemoveAgentResponse{} - mi := &file_inventory_v1_agents_proto_msgTypes[66] + mi := &file_inventory_v1_agents_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11009,7 +11534,7 @@ func (x *RemoveAgentResponse) String() string { func (*RemoveAgentResponse) ProtoMessage() {} func (x *RemoveAgentResponse) ProtoReflect() protoreflect.Message { - mi := &file_inventory_v1_agents_proto_msgTypes[66] + mi := &file_inventory_v1_agents_proto_msgTypes[69] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11022,7 +11547,7 @@ func (x *RemoveAgentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveAgentResponse.ProtoReflect.Descriptor instead. func (*RemoveAgentResponse) Descriptor() ([]byte, []int) { - return file_inventory_v1_agents_proto_rawDescGZIP(), []int{66} + return file_inventory_v1_agents_proto_rawDescGZIP(), []int{69} } var File_inventory_v1_agents_proto protoreflect.FileDescriptor @@ -11338,6 +11863,25 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\tlog_level\x18\v \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\"\x9b\x04\n" + + "\rRTAMySQLAgent\x12\x19\n" + + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12 \n" + + "\fpmm_agent_id\x18\x02 \x01(\tR\n" + + "pmmAgentId\x12\x1a\n" + + "\bdisabled\x18\x03 \x01(\bR\bdisabled\x12\x1d\n" + + "\n" + + "service_id\x18\x04 \x01(\tR\tserviceId\x12 \n" + + "\busername\x18\x05 \x01(\tB\x04\x88\xb5\x18\x01R\busername\x12\x10\n" + + "\x03tls\x18\x06 \x01(\bR\x03tls\x12&\n" + + "\x0ftls_skip_verify\x18\a \x01(\bR\rtlsSkipVerify\x12R\n" + + "\rcustom_labels\x18\b \x03(\v2-.inventory.v1.RTAMySQLAgent.CustomLabelsEntryR\fcustomLabels\x129\n" + + "\vrta_options\x18\t \x01(\v2\x18.inventory.v1.RTAOptionsR\n" + + "rtaOptions\x121\n" + + "\x06status\x18\n" + + " \x01(\x0e2\x19.inventory.v1.AgentStatusR\x06status\x123\n" + + "\tlog_level\x18\v \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\"\x92\x05\n" + "\x1eQANPostgreSQLPgStatementsAgent\x12\x19\n" + "\bagent_id\x18\x01 \x01(\tR\aagentId\x12 \n" + @@ -11458,7 +12002,7 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\n" + "service_id\x18\x03 \x01(\tR\tserviceId\x126\n" + "\n" + - "agent_type\x18\x04 \x01(\x0e2\x17.inventory.v1.AgentTypeR\tagentType\"\x98\f\n" + + "agent_type\x18\x04 \x01(\x0e2\x17.inventory.v1.AgentTypeR\tagentType\"\xdd\f\n" + "\x12ListAgentsResponse\x123\n" + "\tpmm_agent\x18\x01 \x03(\v2\x16.inventory.v1.PMMAgentR\bpmmAgent\x120\n" + "\bvm_agent\x18\x02 \x03(\v2\x15.inventory.v1.VMAgentR\avmAgent\x12?\n" + @@ -11480,9 +12024,10 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\vnomad_agent\x18\x10 \x03(\v2\x18.inventory.v1.NomadAgentR\n" + "nomadAgent\x12E\n" + "\x0fvalkey_exporter\x18\x11 \x03(\v2\x1c.inventory.v1.ValkeyExporterR\x0evalkeyExporter\x12I\n" + - "\x11rta_mongodb_agent\x18\x13 \x03(\v2\x1d.inventory.v1.RTAMongoDBAgentR\x0frtaMongodbAgent\"5\n" + + "\x11rta_mongodb_agent\x18\x13 \x03(\v2\x1d.inventory.v1.RTAMongoDBAgentR\x0frtaMongodbAgent\x12C\n" + + "\x0frta_mysql_agent\x18\x14 \x03(\v2\x1b.inventory.v1.RTAMySQLAgentR\rrtaMysqlAgent\"5\n" + "\x0fGetAgentRequest\x12\"\n" + - "\bagent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10$R\aagentId\"\xc4\f\n" + + "\bagent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10$R\aagentId\"\x8b\r\n" + "\x10GetAgentResponse\x125\n" + "\tpmm_agent\x18\x01 \x01(\v2\x16.inventory.v1.PMMAgentH\x00R\bpmmAgent\x121\n" + "\avmagent\x18\x02 \x01(\v2\x15.inventory.v1.VMAgentH\x00R\avmagent\x12A\n" + @@ -11504,14 +12049,15 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\vnomad_agent\x18\x10 \x01(\v2\x18.inventory.v1.NomadAgentH\x00R\n" + "nomadAgent\x12G\n" + "\x0fvalkey_exporter\x18\x11 \x01(\v2\x1c.inventory.v1.ValkeyExporterH\x00R\x0evalkeyExporter\x12K\n" + - "\x11rta_mongodb_agent\x18\x13 \x01(\v2\x1d.inventory.v1.RTAMongoDBAgentH\x00R\x0frtaMongodbAgentB\a\n" + + "\x11rta_mongodb_agent\x18\x13 \x01(\v2\x1d.inventory.v1.RTAMongoDBAgentH\x00R\x0frtaMongodbAgent\x12E\n" + + "\x0frta_mysql_agent\x18\x14 \x01(\v2\x1b.inventory.v1.RTAMySQLAgentH\x00R\rrtaMysqlAgentB\a\n" + "\x05agent\"O\n" + "\x13GetAgentLogsRequest\x12\"\n" + "\bagent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10$R\aagentId\x12\x14\n" + "\x05limit\x18\x02 \x01(\rR\x05limit\"j\n" + "\x14GetAgentLogsResponse\x12\x12\n" + "\x04logs\x18\x01 \x03(\tR\x04logs\x12>\n" + - "\x1cagent_config_log_lines_count\x18\x02 \x01(\rR\x18agentConfigLogLinesCount\"\xee\f\n" + + "\x1cagent_config_log_lines_count\x18\x02 \x01(\rR\x18agentConfigLogLinesCount\"\xbe\r\n" + "\x0fAddAgentRequest\x12>\n" + "\tpmm_agent\x18\x01 \x01(\v2\x1f.inventory.v1.AddPMMAgentParamsH\x00R\bpmmAgent\x12J\n" + "\rnode_exporter\x18\x02 \x01(\v2#.inventory.v1.AddNodeExporterParamsH\x00R\fnodeExporter\x12P\n" + @@ -11530,8 +12076,9 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "!qan_postgresql_pgstatements_agent\x18\r \x01(\v25.inventory.v1.AddQANPostgreSQLPgStatementsAgentParamsH\x00R\x1eqanPostgresqlPgstatementsAgent\x12\x85\x01\n" + "\"qan_postgresql_pgstatmonitor_agent\x18\x0e \x01(\v26.inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParamsH\x00R\x1fqanPostgresqlPgstatmonitorAgent\x12P\n" + "\x0fvalkey_exporter\x18\x0f \x01(\v2%.inventory.v1.AddValkeyExporterParamsH\x00R\x0evalkeyExporter\x12T\n" + - "\x11rta_mongodb_agent\x18\x11 \x01(\v2&.inventory.v1.AddRTAMongoDBAgentParamsH\x00R\x0frtaMongodbAgentB\a\n" + - "\x05agent\"\xd4\v\n" + + "\x11rta_mongodb_agent\x18\x11 \x01(\v2&.inventory.v1.AddRTAMongoDBAgentParamsH\x00R\x0frtaMongodbAgent\x12N\n" + + "\x0frta_mysql_agent\x18\x12 \x01(\v2$.inventory.v1.AddRTAMySQLAgentParamsH\x00R\rrtaMysqlAgentB\a\n" + + "\x05agent\"\x9b\f\n" + "\x10AddAgentResponse\x125\n" + "\tpmm_agent\x18\x01 \x01(\v2\x16.inventory.v1.PMMAgentH\x00R\bpmmAgent\x12A\n" + "\rnode_exporter\x18\x02 \x01(\v2\x1a.inventory.v1.NodeExporterH\x00R\fnodeExporter\x12G\n" + @@ -11550,8 +12097,9 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "!qan_postgresql_pgstatements_agent\x18\r \x01(\v2,.inventory.v1.QANPostgreSQLPgStatementsAgentH\x00R\x1eqanPostgresqlPgstatementsAgent\x12|\n" + "\"qan_postgresql_pgstatmonitor_agent\x18\x0e \x01(\v2-.inventory.v1.QANPostgreSQLPgStatMonitorAgentH\x00R\x1fqanPostgresqlPgstatmonitorAgent\x12G\n" + "\x0fvalkey_exporter\x18\x0f \x01(\v2\x1c.inventory.v1.ValkeyExporterH\x00R\x0evalkeyExporter\x12K\n" + - "\x11rta_mongodb_agent\x18\x11 \x01(\v2\x1d.inventory.v1.RTAMongoDBAgentH\x00R\x0frtaMongodbAgentB\a\n" + - "\x05agent\"\xce\r\n" + + "\x11rta_mongodb_agent\x18\x11 \x01(\v2\x1d.inventory.v1.RTAMongoDBAgentH\x00R\x0frtaMongodbAgent\x12E\n" + + "\x0frta_mysql_agent\x18\x12 \x01(\v2\x1b.inventory.v1.RTAMySQLAgentH\x00R\rrtaMysqlAgentB\a\n" + + "\x05agent\"\xa1\x0e\n" + "\x12ChangeAgentRequest\x12\"\n" + "\bagent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\aagentId\x12M\n" + "\rnode_exporter\x18\x02 \x01(\v2&.inventory.v1.ChangeNodeExporterParamsH\x00R\fnodeExporter\x12S\n" + @@ -11572,8 +12120,9 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\vnomad_agent\x18\x0f \x01(\v2$.inventory.v1.ChangeNomadAgentParamsH\x00R\n" + "nomadAgent\x12S\n" + "\x0fvalkey_exporter\x18\x10 \x01(\v2(.inventory.v1.ChangeValkeyExporterParamsH\x00R\x0evalkeyExporter\x12W\n" + - "\x11rta_mongodb_agent\x18\x12 \x01(\v2).inventory.v1.ChangeRTAMongoDBAgentParamsH\x00R\x0frtaMongodbAgentB\a\n" + - "\x05agent\"\xdd\v\n" + + "\x11rta_mongodb_agent\x18\x12 \x01(\v2).inventory.v1.ChangeRTAMongoDBAgentParamsH\x00R\x0frtaMongodbAgent\x12Q\n" + + "\x0frta_mysql_agent\x18\x13 \x01(\v2'.inventory.v1.ChangeRTAMySQLAgentParamsH\x00R\rrtaMysqlAgentB\a\n" + + "\x05agent\"\xa4\f\n" + "\x13ChangeAgentResponse\x12A\n" + "\rnode_exporter\x18\x02 \x01(\v2\x1a.inventory.v1.NodeExporterH\x00R\fnodeExporter\x12G\n" + "\x0fmysqld_exporter\x18\x03 \x01(\v2\x1c.inventory.v1.MySQLdExporterH\x00R\x0emysqldExporter\x12J\n" + @@ -11593,7 +12142,8 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\vnomad_agent\x18\x0f \x01(\v2\x18.inventory.v1.NomadAgentH\x00R\n" + "nomadAgent\x12G\n" + "\x0fvalkey_exporter\x18\x10 \x01(\v2\x1c.inventory.v1.ValkeyExporterH\x00R\x0evalkeyExporter\x12K\n" + - "\x11rta_mongodb_agent\x18\x12 \x01(\v2\x1d.inventory.v1.RTAMongoDBAgentH\x00R\x0frtaMongodbAgentB\a\n" + + "\x11rta_mongodb_agent\x18\x12 \x01(\v2\x1d.inventory.v1.RTAMongoDBAgentH\x00R\x0frtaMongodbAgent\x12E\n" + + "\x0frta_mysql_agent\x18\x13 \x01(\v2\x1b.inventory.v1.RTAMySQLAgentH\x00R\rrtaMysqlAgentB\a\n" + "\x05agent\"\xdc\x01\n" + "\x11AddPMMAgentParams\x12.\n" + "\x0fruns_on_node_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\frunsOnNodeId\x12V\n" + @@ -12466,11 +13016,62 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\a_tls_caB\x1b\n" + "\x19_authentication_mechanismB\x0e\n" + "\f_rta_optionsB\x18\n" + + "\x16_skip_connection_check\"\x82\x05\n" + + "\x16AddRTAMySQLAgentParams\x12)\n" + + "\fpmm_agent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\n" + + "pmmAgentId\x12&\n" + + "\n" + + "service_id\x18\x02 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\tserviceId\x12 \n" + + "\busername\x18\x03 \x01(\tB\x04\x88\xb5\x18\x01R\busername\x12 \n" + + "\bpassword\x18\x04 \x01(\tB\x04\x88\xb5\x18\x01R\bpassword\x12[\n" + + "\rcustom_labels\x18\x05 \x03(\v26.inventory.v1.AddRTAMySQLAgentParams.CustomLabelsEntryR\fcustomLabels\x123\n" + + "\tlog_level\x18\x06 \x01(\x0e2\x16.inventory.v1.LogLevelR\blogLevel\x12\x10\n" + + "\x03tls\x18\a \x01(\bR\x03tls\x12&\n" + + "\x0ftls_skip_verify\x18\b \x01(\bR\rtlsSkipVerify\x12\x15\n" + + "\x06tls_ca\x18\t \x01(\tR\x05tlsCa\x12\x1f\n" + + "\btls_cert\x18\n" + + " \x01(\tB\x04\x88\xb5\x18\x01R\atlsCert\x12\x1d\n" + + "\atls_key\x18\v \x01(\tB\x04\x88\xb5\x18\x01R\x06tlsKey\x122\n" + + "\x15skip_connection_check\x18\f \x01(\bR\x13skipConnectionCheck\x129\n" + + "\vrta_options\x18\r \x01(\v2\x18.inventory.v1.RTAOptionsR\n" + + "rtaOptions\x1a?\n" + + "\x11CustomLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xcf\x05\n" + + "\x19ChangeRTAMySQLAgentParams\x12\x1b\n" + + "\x06enable\x18\x01 \x01(\bH\x00R\x06enable\x88\x01\x01\x12;\n" + + "\rcustom_labels\x18\x02 \x01(\v2\x11.common.StringMapH\x01R\fcustomLabels\x88\x01\x01\x128\n" + + "\tlog_level\x18\x03 \x01(\x0e2\x16.inventory.v1.LogLevelH\x02R\blogLevel\x88\x01\x01\x12%\n" + + "\busername\x18\x04 \x01(\tB\x04\x88\xb5\x18\x01H\x03R\busername\x88\x01\x01\x12%\n" + + "\bpassword\x18\x05 \x01(\tB\x04\x88\xb5\x18\x01H\x04R\bpassword\x88\x01\x01\x12\x15\n" + + "\x03tls\x18\x06 \x01(\bH\x05R\x03tls\x88\x01\x01\x12+\n" + + "\x0ftls_skip_verify\x18\a \x01(\bH\x06R\rtlsSkipVerify\x88\x01\x01\x12\x1a\n" + + "\x06tls_ca\x18\b \x01(\tH\aR\x05tlsCa\x88\x01\x01\x12$\n" + + "\btls_cert\x18\t \x01(\tB\x04\x88\xb5\x18\x01H\bR\atlsCert\x88\x01\x01\x12\"\n" + + "\atls_key\x18\n" + + " \x01(\tB\x04\x88\xb5\x18\x01H\tR\x06tlsKey\x88\x01\x01\x12>\n" + + "\vrta_options\x18\v \x01(\v2\x18.inventory.v1.RTAOptionsH\n" + + "R\n" + + "rtaOptions\x88\x01\x01\x127\n" + + "\x15skip_connection_check\x18\f \x01(\bH\vR\x13skipConnectionCheck\x88\x01\x01B\t\n" + + "\a_enableB\x10\n" + + "\x0e_custom_labelsB\f\n" + + "\n" + + "_log_levelB\v\n" + + "\t_usernameB\v\n" + + "\t_passwordB\x06\n" + + "\x04_tlsB\x12\n" + + "\x10_tls_skip_verifyB\t\n" + + "\a_tls_caB\v\n" + + "\t_tls_certB\n" + + "\n" + + "\b_tls_keyB\x0e\n" + + "\f_rta_optionsB\x18\n" + "\x16_skip_connection_check\"N\n" + "\x12RemoveAgentRequest\x12\"\n" + "\bagent_id\x18\x01 \x01(\tB\a\xfaB\x04r\x02\x10\x01R\aagentId\x12\x14\n" + "\x05force\x18\x02 \x01(\bR\x05force\"\x15\n" + - "\x13RemoveAgentResponse*\xd0\x05\n" + + "\x13RemoveAgentResponse*\xf0\x05\n" + "\tAgentType\x12\x1a\n" + "\x16AGENT_TYPE_UNSPECIFIED\x10\x00\x12\x18\n" + "\x14AGENT_TYPE_PMM_AGENT\x10\x01\x12\x17\n" + @@ -12492,7 +13093,8 @@ const file_inventory_v1_agents_proto_rawDesc = "" + "\x17AGENT_TYPE_RDS_EXPORTER\x10\v\x12&\n" + "\"AGENT_TYPE_AZURE_DATABASE_EXPORTER\x10\x0f\x12\x1a\n" + "\x16AGENT_TYPE_NOMAD_AGENT\x10\x10\x12 \n" + - "\x1cAGENT_TYPE_RTA_MONGODB_AGENT\x10\x132\x83\t\n" + + "\x1cAGENT_TYPE_RTA_MONGODB_AGENT\x10\x13\x12\x1e\n" + + "\x1aAGENT_TYPE_RTA_MYSQL_AGENT\x10\x142\x83\t\n" + "\rAgentsService\x12\x9c\x01\n" + "\n" + "ListAgents\x12\x1f.inventory.v1.ListAgentsRequest\x1a .inventory.v1.ListAgentsResponse\"K\x92A,\x12\vList Agents\x1a\x1dReturns a list of all Agents.\x82\xd3\xe4\x93\x02\x16\x12\x14/v1/inventory/agents\x12\x9f\x01\n" + @@ -12517,7 +13119,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, 107) + file_inventory_v1_agents_proto_msgTypes = make([]protoimpl.MessageInfo, 112) file_inventory_v1_agents_proto_goTypes = []any{ AgentType(0), // 0: inventory.v1.AgentType (*PMMAgent)(nil), // 1: inventory.v1.PMMAgent @@ -12535,394 +13137,415 @@ var ( (*QANMongoDBMongologAgent)(nil), // 13: inventory.v1.QANMongoDBMongologAgent (*RTAOptions)(nil), // 14: inventory.v1.RTAOptions (*RTAMongoDBAgent)(nil), // 15: inventory.v1.RTAMongoDBAgent - (*QANPostgreSQLPgStatementsAgent)(nil), // 16: inventory.v1.QANPostgreSQLPgStatementsAgent - (*QANPostgreSQLPgStatMonitorAgent)(nil), // 17: inventory.v1.QANPostgreSQLPgStatMonitorAgent - (*RDSExporter)(nil), // 18: inventory.v1.RDSExporter - (*ExternalExporter)(nil), // 19: inventory.v1.ExternalExporter - (*AzureDatabaseExporter)(nil), // 20: inventory.v1.AzureDatabaseExporter - (*ChangeCommonAgentParams)(nil), // 21: inventory.v1.ChangeCommonAgentParams - (*ListAgentsRequest)(nil), // 22: inventory.v1.ListAgentsRequest - (*ListAgentsResponse)(nil), // 23: inventory.v1.ListAgentsResponse - (*GetAgentRequest)(nil), // 24: inventory.v1.GetAgentRequest - (*GetAgentResponse)(nil), // 25: inventory.v1.GetAgentResponse - (*GetAgentLogsRequest)(nil), // 26: inventory.v1.GetAgentLogsRequest - (*GetAgentLogsResponse)(nil), // 27: inventory.v1.GetAgentLogsResponse - (*AddAgentRequest)(nil), // 28: inventory.v1.AddAgentRequest - (*AddAgentResponse)(nil), // 29: inventory.v1.AddAgentResponse - (*ChangeAgentRequest)(nil), // 30: inventory.v1.ChangeAgentRequest - (*ChangeAgentResponse)(nil), // 31: inventory.v1.ChangeAgentResponse - (*AddPMMAgentParams)(nil), // 32: inventory.v1.AddPMMAgentParams - (*AddNodeExporterParams)(nil), // 33: inventory.v1.AddNodeExporterParams - (*ChangeNodeExporterParams)(nil), // 34: inventory.v1.ChangeNodeExporterParams - (*AddMySQLdExporterParams)(nil), // 35: inventory.v1.AddMySQLdExporterParams - (*ChangeMySQLdExporterParams)(nil), // 36: inventory.v1.ChangeMySQLdExporterParams - (*AddMongoDBExporterParams)(nil), // 37: inventory.v1.AddMongoDBExporterParams - (*ChangeMongoDBExporterParams)(nil), // 38: inventory.v1.ChangeMongoDBExporterParams - (*AddPostgresExporterParams)(nil), // 39: inventory.v1.AddPostgresExporterParams - (*ChangePostgresExporterParams)(nil), // 40: inventory.v1.ChangePostgresExporterParams - (*AddProxySQLExporterParams)(nil), // 41: inventory.v1.AddProxySQLExporterParams - (*ChangeProxySQLExporterParams)(nil), // 42: inventory.v1.ChangeProxySQLExporterParams - (*AddQANMySQLPerfSchemaAgentParams)(nil), // 43: inventory.v1.AddQANMySQLPerfSchemaAgentParams - (*ChangeQANMySQLPerfSchemaAgentParams)(nil), // 44: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams - (*AddQANMySQLSlowlogAgentParams)(nil), // 45: inventory.v1.AddQANMySQLSlowlogAgentParams - (*ChangeQANMySQLSlowlogAgentParams)(nil), // 46: inventory.v1.ChangeQANMySQLSlowlogAgentParams - (*AddQANMongoDBProfilerAgentParams)(nil), // 47: inventory.v1.AddQANMongoDBProfilerAgentParams - (*ChangeQANMongoDBProfilerAgentParams)(nil), // 48: inventory.v1.ChangeQANMongoDBProfilerAgentParams - (*AddQANMongoDBMongologAgentParams)(nil), // 49: inventory.v1.AddQANMongoDBMongologAgentParams - (*ChangeQANMongoDBMongologAgentParams)(nil), // 50: inventory.v1.ChangeQANMongoDBMongologAgentParams - (*AddQANPostgreSQLPgStatementsAgentParams)(nil), // 51: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams - (*ChangeQANPostgreSQLPgStatementsAgentParams)(nil), // 52: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams - (*AddQANPostgreSQLPgStatMonitorAgentParams)(nil), // 53: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams - (*ChangeQANPostgreSQLPgStatMonitorAgentParams)(nil), // 54: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams - (*AddRDSExporterParams)(nil), // 55: inventory.v1.AddRDSExporterParams - (*ChangeRDSExporterParams)(nil), // 56: inventory.v1.ChangeRDSExporterParams - (*AddExternalExporterParams)(nil), // 57: inventory.v1.AddExternalExporterParams - (*ChangeExternalExporterParams)(nil), // 58: inventory.v1.ChangeExternalExporterParams - (*AddAzureDatabaseExporterParams)(nil), // 59: inventory.v1.AddAzureDatabaseExporterParams - (*ChangeAzureDatabaseExporterParams)(nil), // 60: inventory.v1.ChangeAzureDatabaseExporterParams - (*ChangeNomadAgentParams)(nil), // 61: inventory.v1.ChangeNomadAgentParams - (*AddValkeyExporterParams)(nil), // 62: inventory.v1.AddValkeyExporterParams - (*ChangeValkeyExporterParams)(nil), // 63: inventory.v1.ChangeValkeyExporterParams - (*AddRTAMongoDBAgentParams)(nil), // 64: inventory.v1.AddRTAMongoDBAgentParams - (*ChangeRTAMongoDBAgentParams)(nil), // 65: inventory.v1.ChangeRTAMongoDBAgentParams - (*RemoveAgentRequest)(nil), // 66: inventory.v1.RemoveAgentRequest - (*RemoveAgentResponse)(nil), // 67: inventory.v1.RemoveAgentResponse - nil, // 68: inventory.v1.PMMAgent.CustomLabelsEntry - nil, // 69: inventory.v1.NodeExporter.CustomLabelsEntry - nil, // 70: inventory.v1.MySQLdExporter.CustomLabelsEntry - nil, // 71: inventory.v1.MySQLdExporter.ExtraDsnParamsEntry - nil, // 72: inventory.v1.MongoDBExporter.CustomLabelsEntry - nil, // 73: inventory.v1.PostgresExporter.CustomLabelsEntry - nil, // 74: inventory.v1.ProxySQLExporter.CustomLabelsEntry - nil, // 75: inventory.v1.ValkeyExporter.CustomLabelsEntry - nil, // 76: inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry - nil, // 77: inventory.v1.QANMySQLPerfSchemaAgent.ExtraDsnParamsEntry - nil, // 78: inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry - nil, // 79: inventory.v1.QANMySQLSlowlogAgent.ExtraDsnParamsEntry - nil, // 80: inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry - nil, // 81: inventory.v1.QANMongoDBMongologAgent.CustomLabelsEntry - nil, // 82: inventory.v1.RTAMongoDBAgent.CustomLabelsEntry - nil, // 83: inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry - nil, // 84: inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry - nil, // 85: inventory.v1.RDSExporter.CustomLabelsEntry - nil, // 86: inventory.v1.ExternalExporter.CustomLabelsEntry - nil, // 87: inventory.v1.AzureDatabaseExporter.CustomLabelsEntry - nil, // 88: inventory.v1.AddPMMAgentParams.CustomLabelsEntry - nil, // 89: inventory.v1.AddNodeExporterParams.CustomLabelsEntry - nil, // 90: inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry - nil, // 91: inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry - nil, // 92: inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - nil, // 93: inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - nil, // 94: inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - nil, // 95: inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - nil, // 96: inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry - nil, // 97: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - nil, // 98: inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry - nil, // 99: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - nil, // 100: inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry - nil, // 101: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - nil, // 102: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - nil, // 103: inventory.v1.AddRDSExporterParams.CustomLabelsEntry - nil, // 104: inventory.v1.AddExternalExporterParams.CustomLabelsEntry - nil, // 105: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - nil, // 106: inventory.v1.AddValkeyExporterParams.CustomLabelsEntry - nil, // 107: inventory.v1.AddRTAMongoDBAgentParams.CustomLabelsEntry - AgentStatus(0), // 108: inventory.v1.AgentStatus - LogLevel(0), // 109: inventory.v1.LogLevel - (*common.MetricsResolutions)(nil), // 110: common.MetricsResolutions - (*durationpb.Duration)(nil), // 111: google.protobuf.Duration - (*common.StringMap)(nil), // 112: common.StringMap + (*RTAMySQLAgent)(nil), // 16: inventory.v1.RTAMySQLAgent + (*QANPostgreSQLPgStatementsAgent)(nil), // 17: inventory.v1.QANPostgreSQLPgStatementsAgent + (*QANPostgreSQLPgStatMonitorAgent)(nil), // 18: inventory.v1.QANPostgreSQLPgStatMonitorAgent + (*RDSExporter)(nil), // 19: inventory.v1.RDSExporter + (*ExternalExporter)(nil), // 20: inventory.v1.ExternalExporter + (*AzureDatabaseExporter)(nil), // 21: inventory.v1.AzureDatabaseExporter + (*ChangeCommonAgentParams)(nil), // 22: inventory.v1.ChangeCommonAgentParams + (*ListAgentsRequest)(nil), // 23: inventory.v1.ListAgentsRequest + (*ListAgentsResponse)(nil), // 24: inventory.v1.ListAgentsResponse + (*GetAgentRequest)(nil), // 25: inventory.v1.GetAgentRequest + (*GetAgentResponse)(nil), // 26: inventory.v1.GetAgentResponse + (*GetAgentLogsRequest)(nil), // 27: inventory.v1.GetAgentLogsRequest + (*GetAgentLogsResponse)(nil), // 28: inventory.v1.GetAgentLogsResponse + (*AddAgentRequest)(nil), // 29: inventory.v1.AddAgentRequest + (*AddAgentResponse)(nil), // 30: inventory.v1.AddAgentResponse + (*ChangeAgentRequest)(nil), // 31: inventory.v1.ChangeAgentRequest + (*ChangeAgentResponse)(nil), // 32: inventory.v1.ChangeAgentResponse + (*AddPMMAgentParams)(nil), // 33: inventory.v1.AddPMMAgentParams + (*AddNodeExporterParams)(nil), // 34: inventory.v1.AddNodeExporterParams + (*ChangeNodeExporterParams)(nil), // 35: inventory.v1.ChangeNodeExporterParams + (*AddMySQLdExporterParams)(nil), // 36: inventory.v1.AddMySQLdExporterParams + (*ChangeMySQLdExporterParams)(nil), // 37: inventory.v1.ChangeMySQLdExporterParams + (*AddMongoDBExporterParams)(nil), // 38: inventory.v1.AddMongoDBExporterParams + (*ChangeMongoDBExporterParams)(nil), // 39: inventory.v1.ChangeMongoDBExporterParams + (*AddPostgresExporterParams)(nil), // 40: inventory.v1.AddPostgresExporterParams + (*ChangePostgresExporterParams)(nil), // 41: inventory.v1.ChangePostgresExporterParams + (*AddProxySQLExporterParams)(nil), // 42: inventory.v1.AddProxySQLExporterParams + (*ChangeProxySQLExporterParams)(nil), // 43: inventory.v1.ChangeProxySQLExporterParams + (*AddQANMySQLPerfSchemaAgentParams)(nil), // 44: inventory.v1.AddQANMySQLPerfSchemaAgentParams + (*ChangeQANMySQLPerfSchemaAgentParams)(nil), // 45: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams + (*AddQANMySQLSlowlogAgentParams)(nil), // 46: inventory.v1.AddQANMySQLSlowlogAgentParams + (*ChangeQANMySQLSlowlogAgentParams)(nil), // 47: inventory.v1.ChangeQANMySQLSlowlogAgentParams + (*AddQANMongoDBProfilerAgentParams)(nil), // 48: inventory.v1.AddQANMongoDBProfilerAgentParams + (*ChangeQANMongoDBProfilerAgentParams)(nil), // 49: inventory.v1.ChangeQANMongoDBProfilerAgentParams + (*AddQANMongoDBMongologAgentParams)(nil), // 50: inventory.v1.AddQANMongoDBMongologAgentParams + (*ChangeQANMongoDBMongologAgentParams)(nil), // 51: inventory.v1.ChangeQANMongoDBMongologAgentParams + (*AddQANPostgreSQLPgStatementsAgentParams)(nil), // 52: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams + (*ChangeQANPostgreSQLPgStatementsAgentParams)(nil), // 53: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams + (*AddQANPostgreSQLPgStatMonitorAgentParams)(nil), // 54: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams + (*ChangeQANPostgreSQLPgStatMonitorAgentParams)(nil), // 55: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams + (*AddRDSExporterParams)(nil), // 56: inventory.v1.AddRDSExporterParams + (*ChangeRDSExporterParams)(nil), // 57: inventory.v1.ChangeRDSExporterParams + (*AddExternalExporterParams)(nil), // 58: inventory.v1.AddExternalExporterParams + (*ChangeExternalExporterParams)(nil), // 59: inventory.v1.ChangeExternalExporterParams + (*AddAzureDatabaseExporterParams)(nil), // 60: inventory.v1.AddAzureDatabaseExporterParams + (*ChangeAzureDatabaseExporterParams)(nil), // 61: inventory.v1.ChangeAzureDatabaseExporterParams + (*ChangeNomadAgentParams)(nil), // 62: inventory.v1.ChangeNomadAgentParams + (*AddValkeyExporterParams)(nil), // 63: inventory.v1.AddValkeyExporterParams + (*ChangeValkeyExporterParams)(nil), // 64: inventory.v1.ChangeValkeyExporterParams + (*AddRTAMongoDBAgentParams)(nil), // 65: inventory.v1.AddRTAMongoDBAgentParams + (*ChangeRTAMongoDBAgentParams)(nil), // 66: inventory.v1.ChangeRTAMongoDBAgentParams + (*AddRTAMySQLAgentParams)(nil), // 67: inventory.v1.AddRTAMySQLAgentParams + (*ChangeRTAMySQLAgentParams)(nil), // 68: inventory.v1.ChangeRTAMySQLAgentParams + (*RemoveAgentRequest)(nil), // 69: inventory.v1.RemoveAgentRequest + (*RemoveAgentResponse)(nil), // 70: inventory.v1.RemoveAgentResponse + nil, // 71: inventory.v1.PMMAgent.CustomLabelsEntry + nil, // 72: inventory.v1.NodeExporter.CustomLabelsEntry + nil, // 73: inventory.v1.MySQLdExporter.CustomLabelsEntry + nil, // 74: inventory.v1.MySQLdExporter.ExtraDsnParamsEntry + nil, // 75: inventory.v1.MongoDBExporter.CustomLabelsEntry + nil, // 76: inventory.v1.PostgresExporter.CustomLabelsEntry + nil, // 77: inventory.v1.ProxySQLExporter.CustomLabelsEntry + nil, // 78: inventory.v1.ValkeyExporter.CustomLabelsEntry + nil, // 79: inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry + nil, // 80: inventory.v1.QANMySQLPerfSchemaAgent.ExtraDsnParamsEntry + nil, // 81: inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry + nil, // 82: inventory.v1.QANMySQLSlowlogAgent.ExtraDsnParamsEntry + nil, // 83: inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry + nil, // 84: inventory.v1.QANMongoDBMongologAgent.CustomLabelsEntry + nil, // 85: inventory.v1.RTAMongoDBAgent.CustomLabelsEntry + nil, // 86: inventory.v1.RTAMySQLAgent.CustomLabelsEntry + nil, // 87: inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry + nil, // 88: inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry + nil, // 89: inventory.v1.RDSExporter.CustomLabelsEntry + nil, // 90: inventory.v1.ExternalExporter.CustomLabelsEntry + nil, // 91: inventory.v1.AzureDatabaseExporter.CustomLabelsEntry + nil, // 92: inventory.v1.AddPMMAgentParams.CustomLabelsEntry + nil, // 93: inventory.v1.AddNodeExporterParams.CustomLabelsEntry + nil, // 94: inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry + nil, // 95: inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry + nil, // 96: inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry + nil, // 97: inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + nil, // 98: inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + nil, // 99: inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + nil, // 100: inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry + nil, // 101: inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + nil, // 102: inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry + nil, // 103: inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + nil, // 104: inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry + nil, // 105: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + nil, // 106: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + nil, // 107: inventory.v1.AddRDSExporterParams.CustomLabelsEntry + nil, // 108: inventory.v1.AddExternalExporterParams.CustomLabelsEntry + nil, // 109: inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + nil, // 110: inventory.v1.AddValkeyExporterParams.CustomLabelsEntry + nil, // 111: inventory.v1.AddRTAMongoDBAgentParams.CustomLabelsEntry + nil, // 112: inventory.v1.AddRTAMySQLAgentParams.CustomLabelsEntry + AgentStatus(0), // 113: inventory.v1.AgentStatus + LogLevel(0), // 114: inventory.v1.LogLevel + (*common.MetricsResolutions)(nil), // 115: common.MetricsResolutions + (*durationpb.Duration)(nil), // 116: google.protobuf.Duration + (*common.StringMap)(nil), // 117: common.StringMap } ) var file_inventory_v1_agents_proto_depIdxs = []int32{ - 68, // 0: inventory.v1.PMMAgent.custom_labels:type_name -> inventory.v1.PMMAgent.CustomLabelsEntry - 108, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus - 108, // 2: inventory.v1.NomadAgent.status:type_name -> inventory.v1.AgentStatus - 69, // 3: inventory.v1.NodeExporter.custom_labels:type_name -> inventory.v1.NodeExporter.CustomLabelsEntry - 108, // 4: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus - 109, // 5: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel - 110, // 6: inventory.v1.NodeExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 70, // 7: inventory.v1.MySQLdExporter.custom_labels:type_name -> inventory.v1.MySQLdExporter.CustomLabelsEntry - 108, // 8: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus - 109, // 9: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel - 110, // 10: inventory.v1.MySQLdExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 71, // 11: inventory.v1.MySQLdExporter.extra_dsn_params:type_name -> inventory.v1.MySQLdExporter.ExtraDsnParamsEntry - 111, // 12: inventory.v1.MySQLdExporter.connection_timeout:type_name -> google.protobuf.Duration - 72, // 13: inventory.v1.MongoDBExporter.custom_labels:type_name -> inventory.v1.MongoDBExporter.CustomLabelsEntry - 108, // 14: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus - 109, // 15: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel - 110, // 16: inventory.v1.MongoDBExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 111, // 17: inventory.v1.MongoDBExporter.connection_timeout:type_name -> google.protobuf.Duration - 73, // 18: inventory.v1.PostgresExporter.custom_labels:type_name -> inventory.v1.PostgresExporter.CustomLabelsEntry - 108, // 19: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus - 109, // 20: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel - 110, // 21: inventory.v1.PostgresExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 111, // 22: inventory.v1.PostgresExporter.connection_timeout:type_name -> google.protobuf.Duration - 74, // 23: inventory.v1.ProxySQLExporter.custom_labels:type_name -> inventory.v1.ProxySQLExporter.CustomLabelsEntry - 108, // 24: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus - 109, // 25: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel - 110, // 26: inventory.v1.ProxySQLExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 111, // 27: inventory.v1.ProxySQLExporter.connection_timeout:type_name -> google.protobuf.Duration - 75, // 28: inventory.v1.ValkeyExporter.custom_labels:type_name -> inventory.v1.ValkeyExporter.CustomLabelsEntry - 108, // 29: inventory.v1.ValkeyExporter.status:type_name -> inventory.v1.AgentStatus - 110, // 30: inventory.v1.ValkeyExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 111, // 31: inventory.v1.ValkeyExporter.connection_timeout:type_name -> google.protobuf.Duration - 76, // 32: inventory.v1.QANMySQLPerfSchemaAgent.custom_labels:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry - 108, // 33: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus - 109, // 34: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel - 77, // 35: inventory.v1.QANMySQLPerfSchemaAgent.extra_dsn_params:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.ExtraDsnParamsEntry - 78, // 36: inventory.v1.QANMySQLSlowlogAgent.custom_labels:type_name -> inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry - 108, // 37: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus - 109, // 38: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel - 79, // 39: inventory.v1.QANMySQLSlowlogAgent.extra_dsn_params:type_name -> inventory.v1.QANMySQLSlowlogAgent.ExtraDsnParamsEntry - 80, // 40: inventory.v1.QANMongoDBProfilerAgent.custom_labels:type_name -> inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry - 108, // 41: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus - 109, // 42: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel - 81, // 43: inventory.v1.QANMongoDBMongologAgent.custom_labels:type_name -> inventory.v1.QANMongoDBMongologAgent.CustomLabelsEntry - 108, // 44: inventory.v1.QANMongoDBMongologAgent.status:type_name -> inventory.v1.AgentStatus - 109, // 45: inventory.v1.QANMongoDBMongologAgent.log_level:type_name -> inventory.v1.LogLevel - 111, // 46: inventory.v1.RTAOptions.collect_interval:type_name -> google.protobuf.Duration - 82, // 47: inventory.v1.RTAMongoDBAgent.custom_labels:type_name -> inventory.v1.RTAMongoDBAgent.CustomLabelsEntry + 71, // 0: inventory.v1.PMMAgent.custom_labels:type_name -> inventory.v1.PMMAgent.CustomLabelsEntry + 113, // 1: inventory.v1.VMAgent.status:type_name -> inventory.v1.AgentStatus + 113, // 2: inventory.v1.NomadAgent.status:type_name -> inventory.v1.AgentStatus + 72, // 3: inventory.v1.NodeExporter.custom_labels:type_name -> inventory.v1.NodeExporter.CustomLabelsEntry + 113, // 4: inventory.v1.NodeExporter.status:type_name -> inventory.v1.AgentStatus + 114, // 5: inventory.v1.NodeExporter.log_level:type_name -> inventory.v1.LogLevel + 115, // 6: inventory.v1.NodeExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 73, // 7: inventory.v1.MySQLdExporter.custom_labels:type_name -> inventory.v1.MySQLdExporter.CustomLabelsEntry + 113, // 8: inventory.v1.MySQLdExporter.status:type_name -> inventory.v1.AgentStatus + 114, // 9: inventory.v1.MySQLdExporter.log_level:type_name -> inventory.v1.LogLevel + 115, // 10: inventory.v1.MySQLdExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 74, // 11: inventory.v1.MySQLdExporter.extra_dsn_params:type_name -> inventory.v1.MySQLdExporter.ExtraDsnParamsEntry + 116, // 12: inventory.v1.MySQLdExporter.connection_timeout:type_name -> google.protobuf.Duration + 75, // 13: inventory.v1.MongoDBExporter.custom_labels:type_name -> inventory.v1.MongoDBExporter.CustomLabelsEntry + 113, // 14: inventory.v1.MongoDBExporter.status:type_name -> inventory.v1.AgentStatus + 114, // 15: inventory.v1.MongoDBExporter.log_level:type_name -> inventory.v1.LogLevel + 115, // 16: inventory.v1.MongoDBExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 116, // 17: inventory.v1.MongoDBExporter.connection_timeout:type_name -> google.protobuf.Duration + 76, // 18: inventory.v1.PostgresExporter.custom_labels:type_name -> inventory.v1.PostgresExporter.CustomLabelsEntry + 113, // 19: inventory.v1.PostgresExporter.status:type_name -> inventory.v1.AgentStatus + 114, // 20: inventory.v1.PostgresExporter.log_level:type_name -> inventory.v1.LogLevel + 115, // 21: inventory.v1.PostgresExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 116, // 22: inventory.v1.PostgresExporter.connection_timeout:type_name -> google.protobuf.Duration + 77, // 23: inventory.v1.ProxySQLExporter.custom_labels:type_name -> inventory.v1.ProxySQLExporter.CustomLabelsEntry + 113, // 24: inventory.v1.ProxySQLExporter.status:type_name -> inventory.v1.AgentStatus + 114, // 25: inventory.v1.ProxySQLExporter.log_level:type_name -> inventory.v1.LogLevel + 115, // 26: inventory.v1.ProxySQLExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 116, // 27: inventory.v1.ProxySQLExporter.connection_timeout:type_name -> google.protobuf.Duration + 78, // 28: inventory.v1.ValkeyExporter.custom_labels:type_name -> inventory.v1.ValkeyExporter.CustomLabelsEntry + 113, // 29: inventory.v1.ValkeyExporter.status:type_name -> inventory.v1.AgentStatus + 115, // 30: inventory.v1.ValkeyExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 116, // 31: inventory.v1.ValkeyExporter.connection_timeout:type_name -> google.protobuf.Duration + 79, // 32: inventory.v1.QANMySQLPerfSchemaAgent.custom_labels:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.CustomLabelsEntry + 113, // 33: inventory.v1.QANMySQLPerfSchemaAgent.status:type_name -> inventory.v1.AgentStatus + 114, // 34: inventory.v1.QANMySQLPerfSchemaAgent.log_level:type_name -> inventory.v1.LogLevel + 80, // 35: inventory.v1.QANMySQLPerfSchemaAgent.extra_dsn_params:type_name -> inventory.v1.QANMySQLPerfSchemaAgent.ExtraDsnParamsEntry + 81, // 36: inventory.v1.QANMySQLSlowlogAgent.custom_labels:type_name -> inventory.v1.QANMySQLSlowlogAgent.CustomLabelsEntry + 113, // 37: inventory.v1.QANMySQLSlowlogAgent.status:type_name -> inventory.v1.AgentStatus + 114, // 38: inventory.v1.QANMySQLSlowlogAgent.log_level:type_name -> inventory.v1.LogLevel + 82, // 39: inventory.v1.QANMySQLSlowlogAgent.extra_dsn_params:type_name -> inventory.v1.QANMySQLSlowlogAgent.ExtraDsnParamsEntry + 83, // 40: inventory.v1.QANMongoDBProfilerAgent.custom_labels:type_name -> inventory.v1.QANMongoDBProfilerAgent.CustomLabelsEntry + 113, // 41: inventory.v1.QANMongoDBProfilerAgent.status:type_name -> inventory.v1.AgentStatus + 114, // 42: inventory.v1.QANMongoDBProfilerAgent.log_level:type_name -> inventory.v1.LogLevel + 84, // 43: inventory.v1.QANMongoDBMongologAgent.custom_labels:type_name -> inventory.v1.QANMongoDBMongologAgent.CustomLabelsEntry + 113, // 44: inventory.v1.QANMongoDBMongologAgent.status:type_name -> inventory.v1.AgentStatus + 114, // 45: inventory.v1.QANMongoDBMongologAgent.log_level:type_name -> inventory.v1.LogLevel + 116, // 46: inventory.v1.RTAOptions.collect_interval:type_name -> google.protobuf.Duration + 85, // 47: inventory.v1.RTAMongoDBAgent.custom_labels:type_name -> inventory.v1.RTAMongoDBAgent.CustomLabelsEntry 14, // 48: inventory.v1.RTAMongoDBAgent.rta_options:type_name -> inventory.v1.RTAOptions - 108, // 49: inventory.v1.RTAMongoDBAgent.status:type_name -> inventory.v1.AgentStatus - 109, // 50: inventory.v1.RTAMongoDBAgent.log_level:type_name -> inventory.v1.LogLevel - 83, // 51: inventory.v1.QANPostgreSQLPgStatementsAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry - 108, // 52: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus - 109, // 53: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel - 84, // 54: inventory.v1.QANPostgreSQLPgStatMonitorAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry - 108, // 55: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus - 109, // 56: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel - 85, // 57: inventory.v1.RDSExporter.custom_labels:type_name -> inventory.v1.RDSExporter.CustomLabelsEntry - 108, // 58: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus - 109, // 59: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel - 110, // 60: inventory.v1.RDSExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 86, // 61: inventory.v1.ExternalExporter.custom_labels:type_name -> inventory.v1.ExternalExporter.CustomLabelsEntry - 110, // 62: inventory.v1.ExternalExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 108, // 63: inventory.v1.ExternalExporter.status:type_name -> inventory.v1.AgentStatus - 87, // 64: inventory.v1.AzureDatabaseExporter.custom_labels:type_name -> inventory.v1.AzureDatabaseExporter.CustomLabelsEntry - 108, // 65: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus - 109, // 66: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel - 110, // 67: inventory.v1.AzureDatabaseExporter.metrics_resolutions:type_name -> common.MetricsResolutions - 112, // 68: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap - 110, // 69: inventory.v1.ChangeCommonAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 0, // 70: inventory.v1.ListAgentsRequest.agent_type:type_name -> inventory.v1.AgentType - 1, // 71: inventory.v1.ListAgentsResponse.pmm_agent:type_name -> inventory.v1.PMMAgent - 2, // 72: inventory.v1.ListAgentsResponse.vm_agent:type_name -> inventory.v1.VMAgent - 4, // 73: inventory.v1.ListAgentsResponse.node_exporter:type_name -> inventory.v1.NodeExporter - 5, // 74: inventory.v1.ListAgentsResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter - 6, // 75: inventory.v1.ListAgentsResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 7, // 76: inventory.v1.ListAgentsResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter - 8, // 77: inventory.v1.ListAgentsResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter - 10, // 78: inventory.v1.ListAgentsResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent - 11, // 79: inventory.v1.ListAgentsResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent - 12, // 80: inventory.v1.ListAgentsResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent - 13, // 81: inventory.v1.ListAgentsResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent - 16, // 82: inventory.v1.ListAgentsResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent - 17, // 83: inventory.v1.ListAgentsResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 19, // 84: inventory.v1.ListAgentsResponse.external_exporter:type_name -> inventory.v1.ExternalExporter - 18, // 85: inventory.v1.ListAgentsResponse.rds_exporter:type_name -> inventory.v1.RDSExporter - 20, // 86: inventory.v1.ListAgentsResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 3, // 87: inventory.v1.ListAgentsResponse.nomad_agent:type_name -> inventory.v1.NomadAgent - 9, // 88: inventory.v1.ListAgentsResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter - 15, // 89: inventory.v1.ListAgentsResponse.rta_mongodb_agent:type_name -> inventory.v1.RTAMongoDBAgent - 1, // 90: inventory.v1.GetAgentResponse.pmm_agent:type_name -> inventory.v1.PMMAgent - 2, // 91: inventory.v1.GetAgentResponse.vmagent:type_name -> inventory.v1.VMAgent - 4, // 92: inventory.v1.GetAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter - 5, // 93: inventory.v1.GetAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter - 6, // 94: inventory.v1.GetAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 7, // 95: inventory.v1.GetAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter - 8, // 96: inventory.v1.GetAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter - 10, // 97: inventory.v1.GetAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent - 11, // 98: inventory.v1.GetAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent - 12, // 99: inventory.v1.GetAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent - 13, // 100: inventory.v1.GetAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent - 16, // 101: inventory.v1.GetAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent - 17, // 102: inventory.v1.GetAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 19, // 103: inventory.v1.GetAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter - 18, // 104: inventory.v1.GetAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter - 20, // 105: inventory.v1.GetAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 3, // 106: inventory.v1.GetAgentResponse.nomad_agent:type_name -> inventory.v1.NomadAgent - 9, // 107: inventory.v1.GetAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter - 15, // 108: inventory.v1.GetAgentResponse.rta_mongodb_agent:type_name -> inventory.v1.RTAMongoDBAgent - 32, // 109: inventory.v1.AddAgentRequest.pmm_agent:type_name -> inventory.v1.AddPMMAgentParams - 33, // 110: inventory.v1.AddAgentRequest.node_exporter:type_name -> inventory.v1.AddNodeExporterParams - 35, // 111: inventory.v1.AddAgentRequest.mysqld_exporter:type_name -> inventory.v1.AddMySQLdExporterParams - 37, // 112: inventory.v1.AddAgentRequest.mongodb_exporter:type_name -> inventory.v1.AddMongoDBExporterParams - 39, // 113: inventory.v1.AddAgentRequest.postgres_exporter:type_name -> inventory.v1.AddPostgresExporterParams - 41, // 114: inventory.v1.AddAgentRequest.proxysql_exporter:type_name -> inventory.v1.AddProxySQLExporterParams - 57, // 115: inventory.v1.AddAgentRequest.external_exporter:type_name -> inventory.v1.AddExternalExporterParams - 55, // 116: inventory.v1.AddAgentRequest.rds_exporter:type_name -> inventory.v1.AddRDSExporterParams - 59, // 117: inventory.v1.AddAgentRequest.azure_database_exporter:type_name -> inventory.v1.AddAzureDatabaseExporterParams - 43, // 118: inventory.v1.AddAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams - 45, // 119: inventory.v1.AddAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams - 47, // 120: inventory.v1.AddAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams - 49, // 121: inventory.v1.AddAgentRequest.qan_mongodb_mongolog_agent:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams - 51, // 122: inventory.v1.AddAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams - 53, // 123: inventory.v1.AddAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams - 62, // 124: inventory.v1.AddAgentRequest.valkey_exporter:type_name -> inventory.v1.AddValkeyExporterParams - 64, // 125: inventory.v1.AddAgentRequest.rta_mongodb_agent:type_name -> inventory.v1.AddRTAMongoDBAgentParams - 1, // 126: inventory.v1.AddAgentResponse.pmm_agent:type_name -> inventory.v1.PMMAgent - 4, // 127: inventory.v1.AddAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter - 5, // 128: inventory.v1.AddAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter - 6, // 129: inventory.v1.AddAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 7, // 130: inventory.v1.AddAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter - 8, // 131: inventory.v1.AddAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter - 19, // 132: inventory.v1.AddAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter - 18, // 133: inventory.v1.AddAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter - 20, // 134: inventory.v1.AddAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 10, // 135: inventory.v1.AddAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent - 11, // 136: inventory.v1.AddAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent - 12, // 137: inventory.v1.AddAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent - 13, // 138: inventory.v1.AddAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent - 16, // 139: inventory.v1.AddAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent - 17, // 140: inventory.v1.AddAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 9, // 141: inventory.v1.AddAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter - 15, // 142: inventory.v1.AddAgentResponse.rta_mongodb_agent:type_name -> inventory.v1.RTAMongoDBAgent - 34, // 143: inventory.v1.ChangeAgentRequest.node_exporter:type_name -> inventory.v1.ChangeNodeExporterParams - 36, // 144: inventory.v1.ChangeAgentRequest.mysqld_exporter:type_name -> inventory.v1.ChangeMySQLdExporterParams - 38, // 145: inventory.v1.ChangeAgentRequest.mongodb_exporter:type_name -> inventory.v1.ChangeMongoDBExporterParams - 40, // 146: inventory.v1.ChangeAgentRequest.postgres_exporter:type_name -> inventory.v1.ChangePostgresExporterParams - 42, // 147: inventory.v1.ChangeAgentRequest.proxysql_exporter:type_name -> inventory.v1.ChangeProxySQLExporterParams - 58, // 148: inventory.v1.ChangeAgentRequest.external_exporter:type_name -> inventory.v1.ChangeExternalExporterParams - 56, // 149: inventory.v1.ChangeAgentRequest.rds_exporter:type_name -> inventory.v1.ChangeRDSExporterParams - 60, // 150: inventory.v1.ChangeAgentRequest.azure_database_exporter:type_name -> inventory.v1.ChangeAzureDatabaseExporterParams - 44, // 151: inventory.v1.ChangeAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.ChangeQANMySQLPerfSchemaAgentParams - 46, // 152: inventory.v1.ChangeAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.ChangeQANMySQLSlowlogAgentParams - 48, // 153: inventory.v1.ChangeAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.ChangeQANMongoDBProfilerAgentParams - 50, // 154: inventory.v1.ChangeAgentRequest.qan_mongodb_mongolog_agent:type_name -> inventory.v1.ChangeQANMongoDBMongologAgentParams - 52, // 155: inventory.v1.ChangeAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams - 54, // 156: inventory.v1.ChangeAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams - 61, // 157: inventory.v1.ChangeAgentRequest.nomad_agent:type_name -> inventory.v1.ChangeNomadAgentParams - 63, // 158: inventory.v1.ChangeAgentRequest.valkey_exporter:type_name -> inventory.v1.ChangeValkeyExporterParams - 65, // 159: inventory.v1.ChangeAgentRequest.rta_mongodb_agent:type_name -> inventory.v1.ChangeRTAMongoDBAgentParams - 4, // 160: inventory.v1.ChangeAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter - 5, // 161: inventory.v1.ChangeAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter - 6, // 162: inventory.v1.ChangeAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter - 7, // 163: inventory.v1.ChangeAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter - 8, // 164: inventory.v1.ChangeAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter - 19, // 165: inventory.v1.ChangeAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter - 18, // 166: inventory.v1.ChangeAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter - 20, // 167: inventory.v1.ChangeAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter - 10, // 168: inventory.v1.ChangeAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent - 11, // 169: inventory.v1.ChangeAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent - 12, // 170: inventory.v1.ChangeAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent - 13, // 171: inventory.v1.ChangeAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent - 16, // 172: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent - 17, // 173: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent - 3, // 174: inventory.v1.ChangeAgentResponse.nomad_agent:type_name -> inventory.v1.NomadAgent - 9, // 175: inventory.v1.ChangeAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter - 15, // 176: inventory.v1.ChangeAgentResponse.rta_mongodb_agent:type_name -> inventory.v1.RTAMongoDBAgent - 88, // 177: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry - 89, // 178: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry - 109, // 179: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel - 112, // 180: inventory.v1.ChangeNodeExporterParams.custom_labels:type_name -> common.StringMap - 110, // 181: inventory.v1.ChangeNodeExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 182: inventory.v1.ChangeNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel - 90, // 183: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry - 109, // 184: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel - 91, // 185: inventory.v1.AddMySQLdExporterParams.extra_dsn_params:type_name -> inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry - 111, // 186: inventory.v1.AddMySQLdExporterParams.connection_timeout:type_name -> google.protobuf.Duration - 112, // 187: inventory.v1.ChangeMySQLdExporterParams.custom_labels:type_name -> common.StringMap - 110, // 188: inventory.v1.ChangeMySQLdExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 189: inventory.v1.ChangeMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel - 111, // 190: inventory.v1.ChangeMySQLdExporterParams.connection_timeout:type_name -> google.protobuf.Duration - 92, // 191: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry - 109, // 192: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel - 111, // 193: inventory.v1.AddMongoDBExporterParams.connection_timeout:type_name -> google.protobuf.Duration - 112, // 194: inventory.v1.ChangeMongoDBExporterParams.custom_labels:type_name -> common.StringMap - 110, // 195: inventory.v1.ChangeMongoDBExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 196: inventory.v1.ChangeMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel - 111, // 197: inventory.v1.ChangeMongoDBExporterParams.connection_timeout:type_name -> google.protobuf.Duration - 93, // 198: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry - 109, // 199: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel - 111, // 200: inventory.v1.AddPostgresExporterParams.connection_timeout:type_name -> google.protobuf.Duration - 112, // 201: inventory.v1.ChangePostgresExporterParams.custom_labels:type_name -> common.StringMap - 110, // 202: inventory.v1.ChangePostgresExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 203: inventory.v1.ChangePostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel - 111, // 204: inventory.v1.ChangePostgresExporterParams.connection_timeout:type_name -> google.protobuf.Duration - 94, // 205: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry - 109, // 206: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel - 111, // 207: inventory.v1.AddProxySQLExporterParams.connection_timeout:type_name -> google.protobuf.Duration - 112, // 208: inventory.v1.ChangeProxySQLExporterParams.custom_labels:type_name -> common.StringMap - 110, // 209: inventory.v1.ChangeProxySQLExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 210: inventory.v1.ChangeProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel - 111, // 211: inventory.v1.ChangeProxySQLExporterParams.connection_timeout:type_name -> google.protobuf.Duration - 95, // 212: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry - 109, // 213: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel - 96, // 214: inventory.v1.AddQANMySQLPerfSchemaAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry - 112, // 215: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> common.StringMap - 110, // 216: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 217: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel - 97, // 218: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry - 109, // 219: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel - 98, // 220: inventory.v1.AddQANMySQLSlowlogAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry - 112, // 221: inventory.v1.ChangeQANMySQLSlowlogAgentParams.custom_labels:type_name -> common.StringMap - 110, // 222: inventory.v1.ChangeQANMySQLSlowlogAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 223: inventory.v1.ChangeQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel - 99, // 224: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry - 109, // 225: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel - 112, // 226: inventory.v1.ChangeQANMongoDBProfilerAgentParams.custom_labels:type_name -> common.StringMap - 110, // 227: inventory.v1.ChangeQANMongoDBProfilerAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 228: inventory.v1.ChangeQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel - 100, // 229: inventory.v1.AddQANMongoDBMongologAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry - 109, // 230: inventory.v1.AddQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel - 112, // 231: inventory.v1.ChangeQANMongoDBMongologAgentParams.custom_labels:type_name -> common.StringMap - 110, // 232: inventory.v1.ChangeQANMongoDBMongologAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 233: inventory.v1.ChangeQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel - 101, // 234: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry - 109, // 235: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel - 112, // 236: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> common.StringMap - 110, // 237: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 238: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel - 102, // 239: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry - 109, // 240: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel - 112, // 241: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> common.StringMap - 110, // 242: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 243: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel - 103, // 244: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry - 109, // 245: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel - 112, // 246: inventory.v1.ChangeRDSExporterParams.custom_labels:type_name -> common.StringMap - 110, // 247: inventory.v1.ChangeRDSExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 248: inventory.v1.ChangeRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel - 104, // 249: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry - 112, // 250: inventory.v1.ChangeExternalExporterParams.custom_labels:type_name -> common.StringMap - 110, // 251: inventory.v1.ChangeExternalExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 105, // 252: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry - 109, // 253: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel - 112, // 254: inventory.v1.ChangeAzureDatabaseExporterParams.custom_labels:type_name -> common.StringMap - 110, // 255: inventory.v1.ChangeAzureDatabaseExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 256: inventory.v1.ChangeAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel - 106, // 257: inventory.v1.AddValkeyExporterParams.custom_labels:type_name -> inventory.v1.AddValkeyExporterParams.CustomLabelsEntry - 109, // 258: inventory.v1.AddValkeyExporterParams.log_level:type_name -> inventory.v1.LogLevel - 111, // 259: inventory.v1.AddValkeyExporterParams.connection_timeout:type_name -> google.protobuf.Duration - 112, // 260: inventory.v1.ChangeValkeyExporterParams.custom_labels:type_name -> common.StringMap - 110, // 261: inventory.v1.ChangeValkeyExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions - 109, // 262: inventory.v1.ChangeValkeyExporterParams.log_level:type_name -> inventory.v1.LogLevel - 111, // 263: inventory.v1.ChangeValkeyExporterParams.connection_timeout:type_name -> google.protobuf.Duration - 107, // 264: inventory.v1.AddRTAMongoDBAgentParams.custom_labels:type_name -> inventory.v1.AddRTAMongoDBAgentParams.CustomLabelsEntry - 109, // 265: inventory.v1.AddRTAMongoDBAgentParams.log_level:type_name -> inventory.v1.LogLevel - 14, // 266: inventory.v1.AddRTAMongoDBAgentParams.rta_options:type_name -> inventory.v1.RTAOptions - 112, // 267: inventory.v1.ChangeRTAMongoDBAgentParams.custom_labels:type_name -> common.StringMap - 109, // 268: inventory.v1.ChangeRTAMongoDBAgentParams.log_level:type_name -> inventory.v1.LogLevel - 14, // 269: inventory.v1.ChangeRTAMongoDBAgentParams.rta_options:type_name -> inventory.v1.RTAOptions - 22, // 270: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest - 24, // 271: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest - 26, // 272: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest - 28, // 273: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest - 30, // 274: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest - 66, // 275: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest - 23, // 276: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse - 25, // 277: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse - 27, // 278: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse - 29, // 279: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse - 31, // 280: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse - 67, // 281: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse - 276, // [276:282] is the sub-list for method output_type - 270, // [270:276] is the sub-list for method input_type - 270, // [270:270] is the sub-list for extension type_name - 270, // [270:270] is the sub-list for extension extendee - 0, // [0:270] is the sub-list for field type_name + 113, // 49: inventory.v1.RTAMongoDBAgent.status:type_name -> inventory.v1.AgentStatus + 114, // 50: inventory.v1.RTAMongoDBAgent.log_level:type_name -> inventory.v1.LogLevel + 86, // 51: inventory.v1.RTAMySQLAgent.custom_labels:type_name -> inventory.v1.RTAMySQLAgent.CustomLabelsEntry + 14, // 52: inventory.v1.RTAMySQLAgent.rta_options:type_name -> inventory.v1.RTAOptions + 113, // 53: inventory.v1.RTAMySQLAgent.status:type_name -> inventory.v1.AgentStatus + 114, // 54: inventory.v1.RTAMySQLAgent.log_level:type_name -> inventory.v1.LogLevel + 87, // 55: inventory.v1.QANPostgreSQLPgStatementsAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent.CustomLabelsEntry + 113, // 56: inventory.v1.QANPostgreSQLPgStatementsAgent.status:type_name -> inventory.v1.AgentStatus + 114, // 57: inventory.v1.QANPostgreSQLPgStatementsAgent.log_level:type_name -> inventory.v1.LogLevel + 88, // 58: inventory.v1.QANPostgreSQLPgStatMonitorAgent.custom_labels:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent.CustomLabelsEntry + 113, // 59: inventory.v1.QANPostgreSQLPgStatMonitorAgent.status:type_name -> inventory.v1.AgentStatus + 114, // 60: inventory.v1.QANPostgreSQLPgStatMonitorAgent.log_level:type_name -> inventory.v1.LogLevel + 89, // 61: inventory.v1.RDSExporter.custom_labels:type_name -> inventory.v1.RDSExporter.CustomLabelsEntry + 113, // 62: inventory.v1.RDSExporter.status:type_name -> inventory.v1.AgentStatus + 114, // 63: inventory.v1.RDSExporter.log_level:type_name -> inventory.v1.LogLevel + 115, // 64: inventory.v1.RDSExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 90, // 65: inventory.v1.ExternalExporter.custom_labels:type_name -> inventory.v1.ExternalExporter.CustomLabelsEntry + 115, // 66: inventory.v1.ExternalExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 113, // 67: inventory.v1.ExternalExporter.status:type_name -> inventory.v1.AgentStatus + 91, // 68: inventory.v1.AzureDatabaseExporter.custom_labels:type_name -> inventory.v1.AzureDatabaseExporter.CustomLabelsEntry + 113, // 69: inventory.v1.AzureDatabaseExporter.status:type_name -> inventory.v1.AgentStatus + 114, // 70: inventory.v1.AzureDatabaseExporter.log_level:type_name -> inventory.v1.LogLevel + 115, // 71: inventory.v1.AzureDatabaseExporter.metrics_resolutions:type_name -> common.MetricsResolutions + 117, // 72: inventory.v1.ChangeCommonAgentParams.custom_labels:type_name -> common.StringMap + 115, // 73: inventory.v1.ChangeCommonAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 0, // 74: inventory.v1.ListAgentsRequest.agent_type:type_name -> inventory.v1.AgentType + 1, // 75: inventory.v1.ListAgentsResponse.pmm_agent:type_name -> inventory.v1.PMMAgent + 2, // 76: inventory.v1.ListAgentsResponse.vm_agent:type_name -> inventory.v1.VMAgent + 4, // 77: inventory.v1.ListAgentsResponse.node_exporter:type_name -> inventory.v1.NodeExporter + 5, // 78: inventory.v1.ListAgentsResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter + 6, // 79: inventory.v1.ListAgentsResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 7, // 80: inventory.v1.ListAgentsResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter + 8, // 81: inventory.v1.ListAgentsResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter + 10, // 82: inventory.v1.ListAgentsResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent + 11, // 83: inventory.v1.ListAgentsResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent + 12, // 84: inventory.v1.ListAgentsResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent + 13, // 85: inventory.v1.ListAgentsResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent + 17, // 86: inventory.v1.ListAgentsResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent + 18, // 87: inventory.v1.ListAgentsResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent + 20, // 88: inventory.v1.ListAgentsResponse.external_exporter:type_name -> inventory.v1.ExternalExporter + 19, // 89: inventory.v1.ListAgentsResponse.rds_exporter:type_name -> inventory.v1.RDSExporter + 21, // 90: inventory.v1.ListAgentsResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter + 3, // 91: inventory.v1.ListAgentsResponse.nomad_agent:type_name -> inventory.v1.NomadAgent + 9, // 92: inventory.v1.ListAgentsResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter + 15, // 93: inventory.v1.ListAgentsResponse.rta_mongodb_agent:type_name -> inventory.v1.RTAMongoDBAgent + 16, // 94: inventory.v1.ListAgentsResponse.rta_mysql_agent:type_name -> inventory.v1.RTAMySQLAgent + 1, // 95: inventory.v1.GetAgentResponse.pmm_agent:type_name -> inventory.v1.PMMAgent + 2, // 96: inventory.v1.GetAgentResponse.vmagent:type_name -> inventory.v1.VMAgent + 4, // 97: inventory.v1.GetAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter + 5, // 98: inventory.v1.GetAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter + 6, // 99: inventory.v1.GetAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 7, // 100: inventory.v1.GetAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter + 8, // 101: inventory.v1.GetAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter + 10, // 102: inventory.v1.GetAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent + 11, // 103: inventory.v1.GetAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent + 12, // 104: inventory.v1.GetAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent + 13, // 105: inventory.v1.GetAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent + 17, // 106: inventory.v1.GetAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent + 18, // 107: inventory.v1.GetAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent + 20, // 108: inventory.v1.GetAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter + 19, // 109: inventory.v1.GetAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter + 21, // 110: inventory.v1.GetAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter + 3, // 111: inventory.v1.GetAgentResponse.nomad_agent:type_name -> inventory.v1.NomadAgent + 9, // 112: inventory.v1.GetAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter + 15, // 113: inventory.v1.GetAgentResponse.rta_mongodb_agent:type_name -> inventory.v1.RTAMongoDBAgent + 16, // 114: inventory.v1.GetAgentResponse.rta_mysql_agent:type_name -> inventory.v1.RTAMySQLAgent + 33, // 115: inventory.v1.AddAgentRequest.pmm_agent:type_name -> inventory.v1.AddPMMAgentParams + 34, // 116: inventory.v1.AddAgentRequest.node_exporter:type_name -> inventory.v1.AddNodeExporterParams + 36, // 117: inventory.v1.AddAgentRequest.mysqld_exporter:type_name -> inventory.v1.AddMySQLdExporterParams + 38, // 118: inventory.v1.AddAgentRequest.mongodb_exporter:type_name -> inventory.v1.AddMongoDBExporterParams + 40, // 119: inventory.v1.AddAgentRequest.postgres_exporter:type_name -> inventory.v1.AddPostgresExporterParams + 42, // 120: inventory.v1.AddAgentRequest.proxysql_exporter:type_name -> inventory.v1.AddProxySQLExporterParams + 58, // 121: inventory.v1.AddAgentRequest.external_exporter:type_name -> inventory.v1.AddExternalExporterParams + 56, // 122: inventory.v1.AddAgentRequest.rds_exporter:type_name -> inventory.v1.AddRDSExporterParams + 60, // 123: inventory.v1.AddAgentRequest.azure_database_exporter:type_name -> inventory.v1.AddAzureDatabaseExporterParams + 44, // 124: inventory.v1.AddAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams + 46, // 125: inventory.v1.AddAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams + 48, // 126: inventory.v1.AddAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams + 50, // 127: inventory.v1.AddAgentRequest.qan_mongodb_mongolog_agent:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams + 52, // 128: inventory.v1.AddAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams + 54, // 129: inventory.v1.AddAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams + 63, // 130: inventory.v1.AddAgentRequest.valkey_exporter:type_name -> inventory.v1.AddValkeyExporterParams + 65, // 131: inventory.v1.AddAgentRequest.rta_mongodb_agent:type_name -> inventory.v1.AddRTAMongoDBAgentParams + 67, // 132: inventory.v1.AddAgentRequest.rta_mysql_agent:type_name -> inventory.v1.AddRTAMySQLAgentParams + 1, // 133: inventory.v1.AddAgentResponse.pmm_agent:type_name -> inventory.v1.PMMAgent + 4, // 134: inventory.v1.AddAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter + 5, // 135: inventory.v1.AddAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter + 6, // 136: inventory.v1.AddAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 7, // 137: inventory.v1.AddAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter + 8, // 138: inventory.v1.AddAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter + 20, // 139: inventory.v1.AddAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter + 19, // 140: inventory.v1.AddAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter + 21, // 141: inventory.v1.AddAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter + 10, // 142: inventory.v1.AddAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent + 11, // 143: inventory.v1.AddAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent + 12, // 144: inventory.v1.AddAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent + 13, // 145: inventory.v1.AddAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent + 17, // 146: inventory.v1.AddAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent + 18, // 147: inventory.v1.AddAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent + 9, // 148: inventory.v1.AddAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter + 15, // 149: inventory.v1.AddAgentResponse.rta_mongodb_agent:type_name -> inventory.v1.RTAMongoDBAgent + 16, // 150: inventory.v1.AddAgentResponse.rta_mysql_agent:type_name -> inventory.v1.RTAMySQLAgent + 35, // 151: inventory.v1.ChangeAgentRequest.node_exporter:type_name -> inventory.v1.ChangeNodeExporterParams + 37, // 152: inventory.v1.ChangeAgentRequest.mysqld_exporter:type_name -> inventory.v1.ChangeMySQLdExporterParams + 39, // 153: inventory.v1.ChangeAgentRequest.mongodb_exporter:type_name -> inventory.v1.ChangeMongoDBExporterParams + 41, // 154: inventory.v1.ChangeAgentRequest.postgres_exporter:type_name -> inventory.v1.ChangePostgresExporterParams + 43, // 155: inventory.v1.ChangeAgentRequest.proxysql_exporter:type_name -> inventory.v1.ChangeProxySQLExporterParams + 59, // 156: inventory.v1.ChangeAgentRequest.external_exporter:type_name -> inventory.v1.ChangeExternalExporterParams + 57, // 157: inventory.v1.ChangeAgentRequest.rds_exporter:type_name -> inventory.v1.ChangeRDSExporterParams + 61, // 158: inventory.v1.ChangeAgentRequest.azure_database_exporter:type_name -> inventory.v1.ChangeAzureDatabaseExporterParams + 45, // 159: inventory.v1.ChangeAgentRequest.qan_mysql_perfschema_agent:type_name -> inventory.v1.ChangeQANMySQLPerfSchemaAgentParams + 47, // 160: inventory.v1.ChangeAgentRequest.qan_mysql_slowlog_agent:type_name -> inventory.v1.ChangeQANMySQLSlowlogAgentParams + 49, // 161: inventory.v1.ChangeAgentRequest.qan_mongodb_profiler_agent:type_name -> inventory.v1.ChangeQANMongoDBProfilerAgentParams + 51, // 162: inventory.v1.ChangeAgentRequest.qan_mongodb_mongolog_agent:type_name -> inventory.v1.ChangeQANMongoDBMongologAgentParams + 53, // 163: inventory.v1.ChangeAgentRequest.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams + 55, // 164: inventory.v1.ChangeAgentRequest.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams + 62, // 165: inventory.v1.ChangeAgentRequest.nomad_agent:type_name -> inventory.v1.ChangeNomadAgentParams + 64, // 166: inventory.v1.ChangeAgentRequest.valkey_exporter:type_name -> inventory.v1.ChangeValkeyExporterParams + 66, // 167: inventory.v1.ChangeAgentRequest.rta_mongodb_agent:type_name -> inventory.v1.ChangeRTAMongoDBAgentParams + 68, // 168: inventory.v1.ChangeAgentRequest.rta_mysql_agent:type_name -> inventory.v1.ChangeRTAMySQLAgentParams + 4, // 169: inventory.v1.ChangeAgentResponse.node_exporter:type_name -> inventory.v1.NodeExporter + 5, // 170: inventory.v1.ChangeAgentResponse.mysqld_exporter:type_name -> inventory.v1.MySQLdExporter + 6, // 171: inventory.v1.ChangeAgentResponse.mongodb_exporter:type_name -> inventory.v1.MongoDBExporter + 7, // 172: inventory.v1.ChangeAgentResponse.postgres_exporter:type_name -> inventory.v1.PostgresExporter + 8, // 173: inventory.v1.ChangeAgentResponse.proxysql_exporter:type_name -> inventory.v1.ProxySQLExporter + 20, // 174: inventory.v1.ChangeAgentResponse.external_exporter:type_name -> inventory.v1.ExternalExporter + 19, // 175: inventory.v1.ChangeAgentResponse.rds_exporter:type_name -> inventory.v1.RDSExporter + 21, // 176: inventory.v1.ChangeAgentResponse.azure_database_exporter:type_name -> inventory.v1.AzureDatabaseExporter + 10, // 177: inventory.v1.ChangeAgentResponse.qan_mysql_perfschema_agent:type_name -> inventory.v1.QANMySQLPerfSchemaAgent + 11, // 178: inventory.v1.ChangeAgentResponse.qan_mysql_slowlog_agent:type_name -> inventory.v1.QANMySQLSlowlogAgent + 12, // 179: inventory.v1.ChangeAgentResponse.qan_mongodb_profiler_agent:type_name -> inventory.v1.QANMongoDBProfilerAgent + 13, // 180: inventory.v1.ChangeAgentResponse.qan_mongodb_mongolog_agent:type_name -> inventory.v1.QANMongoDBMongologAgent + 17, // 181: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatements_agent:type_name -> inventory.v1.QANPostgreSQLPgStatementsAgent + 18, // 182: inventory.v1.ChangeAgentResponse.qan_postgresql_pgstatmonitor_agent:type_name -> inventory.v1.QANPostgreSQLPgStatMonitorAgent + 3, // 183: inventory.v1.ChangeAgentResponse.nomad_agent:type_name -> inventory.v1.NomadAgent + 9, // 184: inventory.v1.ChangeAgentResponse.valkey_exporter:type_name -> inventory.v1.ValkeyExporter + 15, // 185: inventory.v1.ChangeAgentResponse.rta_mongodb_agent:type_name -> inventory.v1.RTAMongoDBAgent + 16, // 186: inventory.v1.ChangeAgentResponse.rta_mysql_agent:type_name -> inventory.v1.RTAMySQLAgent + 92, // 187: inventory.v1.AddPMMAgentParams.custom_labels:type_name -> inventory.v1.AddPMMAgentParams.CustomLabelsEntry + 93, // 188: inventory.v1.AddNodeExporterParams.custom_labels:type_name -> inventory.v1.AddNodeExporterParams.CustomLabelsEntry + 114, // 189: inventory.v1.AddNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel + 117, // 190: inventory.v1.ChangeNodeExporterParams.custom_labels:type_name -> common.StringMap + 115, // 191: inventory.v1.ChangeNodeExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 192: inventory.v1.ChangeNodeExporterParams.log_level:type_name -> inventory.v1.LogLevel + 94, // 193: inventory.v1.AddMySQLdExporterParams.custom_labels:type_name -> inventory.v1.AddMySQLdExporterParams.CustomLabelsEntry + 114, // 194: inventory.v1.AddMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel + 95, // 195: inventory.v1.AddMySQLdExporterParams.extra_dsn_params:type_name -> inventory.v1.AddMySQLdExporterParams.ExtraDsnParamsEntry + 116, // 196: inventory.v1.AddMySQLdExporterParams.connection_timeout:type_name -> google.protobuf.Duration + 117, // 197: inventory.v1.ChangeMySQLdExporterParams.custom_labels:type_name -> common.StringMap + 115, // 198: inventory.v1.ChangeMySQLdExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 199: inventory.v1.ChangeMySQLdExporterParams.log_level:type_name -> inventory.v1.LogLevel + 116, // 200: inventory.v1.ChangeMySQLdExporterParams.connection_timeout:type_name -> google.protobuf.Duration + 96, // 201: inventory.v1.AddMongoDBExporterParams.custom_labels:type_name -> inventory.v1.AddMongoDBExporterParams.CustomLabelsEntry + 114, // 202: inventory.v1.AddMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel + 116, // 203: inventory.v1.AddMongoDBExporterParams.connection_timeout:type_name -> google.protobuf.Duration + 117, // 204: inventory.v1.ChangeMongoDBExporterParams.custom_labels:type_name -> common.StringMap + 115, // 205: inventory.v1.ChangeMongoDBExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 206: inventory.v1.ChangeMongoDBExporterParams.log_level:type_name -> inventory.v1.LogLevel + 116, // 207: inventory.v1.ChangeMongoDBExporterParams.connection_timeout:type_name -> google.protobuf.Duration + 97, // 208: inventory.v1.AddPostgresExporterParams.custom_labels:type_name -> inventory.v1.AddPostgresExporterParams.CustomLabelsEntry + 114, // 209: inventory.v1.AddPostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel + 116, // 210: inventory.v1.AddPostgresExporterParams.connection_timeout:type_name -> google.protobuf.Duration + 117, // 211: inventory.v1.ChangePostgresExporterParams.custom_labels:type_name -> common.StringMap + 115, // 212: inventory.v1.ChangePostgresExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 213: inventory.v1.ChangePostgresExporterParams.log_level:type_name -> inventory.v1.LogLevel + 116, // 214: inventory.v1.ChangePostgresExporterParams.connection_timeout:type_name -> google.protobuf.Duration + 98, // 215: inventory.v1.AddProxySQLExporterParams.custom_labels:type_name -> inventory.v1.AddProxySQLExporterParams.CustomLabelsEntry + 114, // 216: inventory.v1.AddProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel + 116, // 217: inventory.v1.AddProxySQLExporterParams.connection_timeout:type_name -> google.protobuf.Duration + 117, // 218: inventory.v1.ChangeProxySQLExporterParams.custom_labels:type_name -> common.StringMap + 115, // 219: inventory.v1.ChangeProxySQLExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 220: inventory.v1.ChangeProxySQLExporterParams.log_level:type_name -> inventory.v1.LogLevel + 116, // 221: inventory.v1.ChangeProxySQLExporterParams.connection_timeout:type_name -> google.protobuf.Duration + 99, // 222: inventory.v1.AddQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.CustomLabelsEntry + 114, // 223: inventory.v1.AddQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel + 100, // 224: inventory.v1.AddQANMySQLPerfSchemaAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLPerfSchemaAgentParams.ExtraDsnParamsEntry + 117, // 225: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.custom_labels:type_name -> common.StringMap + 115, // 226: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 227: inventory.v1.ChangeQANMySQLPerfSchemaAgentParams.log_level:type_name -> inventory.v1.LogLevel + 101, // 228: inventory.v1.AddQANMySQLSlowlogAgentParams.custom_labels:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.CustomLabelsEntry + 114, // 229: inventory.v1.AddQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel + 102, // 230: inventory.v1.AddQANMySQLSlowlogAgentParams.extra_dsn_params:type_name -> inventory.v1.AddQANMySQLSlowlogAgentParams.ExtraDsnParamsEntry + 117, // 231: inventory.v1.ChangeQANMySQLSlowlogAgentParams.custom_labels:type_name -> common.StringMap + 115, // 232: inventory.v1.ChangeQANMySQLSlowlogAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 233: inventory.v1.ChangeQANMySQLSlowlogAgentParams.log_level:type_name -> inventory.v1.LogLevel + 103, // 234: inventory.v1.AddQANMongoDBProfilerAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBProfilerAgentParams.CustomLabelsEntry + 114, // 235: inventory.v1.AddQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel + 117, // 236: inventory.v1.ChangeQANMongoDBProfilerAgentParams.custom_labels:type_name -> common.StringMap + 115, // 237: inventory.v1.ChangeQANMongoDBProfilerAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 238: inventory.v1.ChangeQANMongoDBProfilerAgentParams.log_level:type_name -> inventory.v1.LogLevel + 104, // 239: inventory.v1.AddQANMongoDBMongologAgentParams.custom_labels:type_name -> inventory.v1.AddQANMongoDBMongologAgentParams.CustomLabelsEntry + 114, // 240: inventory.v1.AddQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel + 117, // 241: inventory.v1.ChangeQANMongoDBMongologAgentParams.custom_labels:type_name -> common.StringMap + 115, // 242: inventory.v1.ChangeQANMongoDBMongologAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 243: inventory.v1.ChangeQANMongoDBMongologAgentParams.log_level:type_name -> inventory.v1.LogLevel + 105, // 244: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.CustomLabelsEntry + 114, // 245: inventory.v1.AddQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel + 117, // 246: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.custom_labels:type_name -> common.StringMap + 115, // 247: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 248: inventory.v1.ChangeQANPostgreSQLPgStatementsAgentParams.log_level:type_name -> inventory.v1.LogLevel + 106, // 249: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.CustomLabelsEntry + 114, // 250: inventory.v1.AddQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel + 117, // 251: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.custom_labels:type_name -> common.StringMap + 115, // 252: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 253: inventory.v1.ChangeQANPostgreSQLPgStatMonitorAgentParams.log_level:type_name -> inventory.v1.LogLevel + 107, // 254: inventory.v1.AddRDSExporterParams.custom_labels:type_name -> inventory.v1.AddRDSExporterParams.CustomLabelsEntry + 114, // 255: inventory.v1.AddRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel + 117, // 256: inventory.v1.ChangeRDSExporterParams.custom_labels:type_name -> common.StringMap + 115, // 257: inventory.v1.ChangeRDSExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 258: inventory.v1.ChangeRDSExporterParams.log_level:type_name -> inventory.v1.LogLevel + 108, // 259: inventory.v1.AddExternalExporterParams.custom_labels:type_name -> inventory.v1.AddExternalExporterParams.CustomLabelsEntry + 117, // 260: inventory.v1.ChangeExternalExporterParams.custom_labels:type_name -> common.StringMap + 115, // 261: inventory.v1.ChangeExternalExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 109, // 262: inventory.v1.AddAzureDatabaseExporterParams.custom_labels:type_name -> inventory.v1.AddAzureDatabaseExporterParams.CustomLabelsEntry + 114, // 263: inventory.v1.AddAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel + 117, // 264: inventory.v1.ChangeAzureDatabaseExporterParams.custom_labels:type_name -> common.StringMap + 115, // 265: inventory.v1.ChangeAzureDatabaseExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 266: inventory.v1.ChangeAzureDatabaseExporterParams.log_level:type_name -> inventory.v1.LogLevel + 110, // 267: inventory.v1.AddValkeyExporterParams.custom_labels:type_name -> inventory.v1.AddValkeyExporterParams.CustomLabelsEntry + 114, // 268: inventory.v1.AddValkeyExporterParams.log_level:type_name -> inventory.v1.LogLevel + 116, // 269: inventory.v1.AddValkeyExporterParams.connection_timeout:type_name -> google.protobuf.Duration + 117, // 270: inventory.v1.ChangeValkeyExporterParams.custom_labels:type_name -> common.StringMap + 115, // 271: inventory.v1.ChangeValkeyExporterParams.metrics_resolutions:type_name -> common.MetricsResolutions + 114, // 272: inventory.v1.ChangeValkeyExporterParams.log_level:type_name -> inventory.v1.LogLevel + 116, // 273: inventory.v1.ChangeValkeyExporterParams.connection_timeout:type_name -> google.protobuf.Duration + 111, // 274: inventory.v1.AddRTAMongoDBAgentParams.custom_labels:type_name -> inventory.v1.AddRTAMongoDBAgentParams.CustomLabelsEntry + 114, // 275: inventory.v1.AddRTAMongoDBAgentParams.log_level:type_name -> inventory.v1.LogLevel + 14, // 276: inventory.v1.AddRTAMongoDBAgentParams.rta_options:type_name -> inventory.v1.RTAOptions + 117, // 277: inventory.v1.ChangeRTAMongoDBAgentParams.custom_labels:type_name -> common.StringMap + 114, // 278: inventory.v1.ChangeRTAMongoDBAgentParams.log_level:type_name -> inventory.v1.LogLevel + 14, // 279: inventory.v1.ChangeRTAMongoDBAgentParams.rta_options:type_name -> inventory.v1.RTAOptions + 112, // 280: inventory.v1.AddRTAMySQLAgentParams.custom_labels:type_name -> inventory.v1.AddRTAMySQLAgentParams.CustomLabelsEntry + 114, // 281: inventory.v1.AddRTAMySQLAgentParams.log_level:type_name -> inventory.v1.LogLevel + 14, // 282: inventory.v1.AddRTAMySQLAgentParams.rta_options:type_name -> inventory.v1.RTAOptions + 117, // 283: inventory.v1.ChangeRTAMySQLAgentParams.custom_labels:type_name -> common.StringMap + 114, // 284: inventory.v1.ChangeRTAMySQLAgentParams.log_level:type_name -> inventory.v1.LogLevel + 14, // 285: inventory.v1.ChangeRTAMySQLAgentParams.rta_options:type_name -> inventory.v1.RTAOptions + 23, // 286: inventory.v1.AgentsService.ListAgents:input_type -> inventory.v1.ListAgentsRequest + 25, // 287: inventory.v1.AgentsService.GetAgent:input_type -> inventory.v1.GetAgentRequest + 27, // 288: inventory.v1.AgentsService.GetAgentLogs:input_type -> inventory.v1.GetAgentLogsRequest + 29, // 289: inventory.v1.AgentsService.AddAgent:input_type -> inventory.v1.AddAgentRequest + 31, // 290: inventory.v1.AgentsService.ChangeAgent:input_type -> inventory.v1.ChangeAgentRequest + 69, // 291: inventory.v1.AgentsService.RemoveAgent:input_type -> inventory.v1.RemoveAgentRequest + 24, // 292: inventory.v1.AgentsService.ListAgents:output_type -> inventory.v1.ListAgentsResponse + 26, // 293: inventory.v1.AgentsService.GetAgent:output_type -> inventory.v1.GetAgentResponse + 28, // 294: inventory.v1.AgentsService.GetAgentLogs:output_type -> inventory.v1.GetAgentLogsResponse + 30, // 295: inventory.v1.AgentsService.AddAgent:output_type -> inventory.v1.AddAgentResponse + 32, // 296: inventory.v1.AgentsService.ChangeAgent:output_type -> inventory.v1.ChangeAgentResponse + 70, // 297: inventory.v1.AgentsService.RemoveAgent:output_type -> inventory.v1.RemoveAgentResponse + 292, // [292:298] is the sub-list for method output_type + 286, // [286:292] is the sub-list for method input_type + 286, // [286:286] is the sub-list for extension type_name + 286, // [286:286] is the sub-list for extension extendee + 0, // [0:286] is the sub-list for field type_name } func init() { file_inventory_v1_agents_proto_init() } @@ -12932,8 +13555,8 @@ func file_inventory_v1_agents_proto_init() { } file_inventory_v1_agent_status_proto_init() file_inventory_v1_log_level_proto_init() - file_inventory_v1_agents_proto_msgTypes[20].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[24].OneofWrappers = []any{ + file_inventory_v1_agents_proto_msgTypes[21].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[25].OneofWrappers = []any{ (*GetAgentResponse_PmmAgent)(nil), (*GetAgentResponse_Vmagent)(nil), (*GetAgentResponse_NodeExporter)(nil), @@ -12953,8 +13576,9 @@ func file_inventory_v1_agents_proto_init() { (*GetAgentResponse_NomadAgent)(nil), (*GetAgentResponse_ValkeyExporter)(nil), (*GetAgentResponse_RtaMongodbAgent)(nil), + (*GetAgentResponse_RtaMysqlAgent)(nil), } - file_inventory_v1_agents_proto_msgTypes[27].OneofWrappers = []any{ + file_inventory_v1_agents_proto_msgTypes[28].OneofWrappers = []any{ (*AddAgentRequest_PmmAgent)(nil), (*AddAgentRequest_NodeExporter)(nil), (*AddAgentRequest_MysqldExporter)(nil), @@ -12972,8 +13596,9 @@ func file_inventory_v1_agents_proto_init() { (*AddAgentRequest_QanPostgresqlPgstatmonitorAgent)(nil), (*AddAgentRequest_ValkeyExporter)(nil), (*AddAgentRequest_RtaMongodbAgent)(nil), + (*AddAgentRequest_RtaMysqlAgent)(nil), } - file_inventory_v1_agents_proto_msgTypes[28].OneofWrappers = []any{ + file_inventory_v1_agents_proto_msgTypes[29].OneofWrappers = []any{ (*AddAgentResponse_PmmAgent)(nil), (*AddAgentResponse_NodeExporter)(nil), (*AddAgentResponse_MysqldExporter)(nil), @@ -12991,8 +13616,9 @@ func file_inventory_v1_agents_proto_init() { (*AddAgentResponse_QanPostgresqlPgstatmonitorAgent)(nil), (*AddAgentResponse_ValkeyExporter)(nil), (*AddAgentResponse_RtaMongodbAgent)(nil), + (*AddAgentResponse_RtaMysqlAgent)(nil), } - file_inventory_v1_agents_proto_msgTypes[29].OneofWrappers = []any{ + file_inventory_v1_agents_proto_msgTypes[30].OneofWrappers = []any{ (*ChangeAgentRequest_NodeExporter)(nil), (*ChangeAgentRequest_MysqldExporter)(nil), (*ChangeAgentRequest_MongodbExporter)(nil), @@ -13010,8 +13636,9 @@ func file_inventory_v1_agents_proto_init() { (*ChangeAgentRequest_NomadAgent)(nil), (*ChangeAgentRequest_ValkeyExporter)(nil), (*ChangeAgentRequest_RtaMongodbAgent)(nil), + (*ChangeAgentRequest_RtaMysqlAgent)(nil), } - file_inventory_v1_agents_proto_msgTypes[30].OneofWrappers = []any{ + file_inventory_v1_agents_proto_msgTypes[31].OneofWrappers = []any{ (*ChangeAgentResponse_NodeExporter)(nil), (*ChangeAgentResponse_MysqldExporter)(nil), (*ChangeAgentResponse_MongodbExporter)(nil), @@ -13029,31 +13656,33 @@ func file_inventory_v1_agents_proto_init() { (*ChangeAgentResponse_NomadAgent)(nil), (*ChangeAgentResponse_ValkeyExporter)(nil), (*ChangeAgentResponse_RtaMongodbAgent)(nil), - } - file_inventory_v1_agents_proto_msgTypes[33].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[35].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[37].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[39].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[41].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[43].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[45].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[47].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[49].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[51].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[53].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[55].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[57].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[59].OneofWrappers = []any{} + (*ChangeAgentResponse_RtaMysqlAgent)(nil), + } + file_inventory_v1_agents_proto_msgTypes[34].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[36].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[38].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[40].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[42].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[44].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[46].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[48].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[50].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[52].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[54].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[56].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[58].OneofWrappers = []any{} file_inventory_v1_agents_proto_msgTypes[60].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[62].OneofWrappers = []any{} - file_inventory_v1_agents_proto_msgTypes[64].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[61].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[63].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[65].OneofWrappers = []any{} + file_inventory_v1_agents_proto_msgTypes[67].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ 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: 107, + NumMessages: 112, NumExtensions: 0, NumServices: 1, }, diff --git a/api/inventory/v1/agents.pb.validate.go b/api/inventory/v1/agents.pb.validate.go index 4340a6da034..ec342ebe908 100644 --- a/api/inventory/v1/agents.pb.validate.go +++ b/api/inventory/v1/agents.pb.validate.go @@ -2289,6 +2289,156 @@ var _ interface { ErrorName() string } = RTAMongoDBAgentValidationError{} +// Validate checks the field values on RTAMySQLAgent with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *RTAMySQLAgent) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on RTAMySQLAgent with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in RTAMySQLAgentMultiError, or +// nil if none found. +func (m *RTAMySQLAgent) ValidateAll() error { + return m.validate(true) +} + +func (m *RTAMySQLAgent) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for AgentId + + // no validation rules for PmmAgentId + + // no validation rules for Disabled + + // no validation rules for ServiceId + + // no validation rules for Username + + // no validation rules for Tls + + // no validation rules for TlsSkipVerify + + // no validation rules for CustomLabels + + if all { + switch v := interface{}(m.GetRtaOptions()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, RTAMySQLAgentValidationError{ + field: "RtaOptions", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, RTAMySQLAgentValidationError{ + field: "RtaOptions", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRtaOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return RTAMySQLAgentValidationError{ + field: "RtaOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for Status + + // no validation rules for LogLevel + + if len(errors) > 0 { + return RTAMySQLAgentMultiError(errors) + } + + return nil +} + +// RTAMySQLAgentMultiError is an error wrapping multiple validation errors +// returned by RTAMySQLAgent.ValidateAll() if the designated constraints +// aren't met. +type RTAMySQLAgentMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m RTAMySQLAgentMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m RTAMySQLAgentMultiError) AllErrors() []error { return m } + +// RTAMySQLAgentValidationError is the validation error returned by +// RTAMySQLAgent.Validate if the designated constraints aren't met. +type RTAMySQLAgentValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e RTAMySQLAgentValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e RTAMySQLAgentValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e RTAMySQLAgentValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e RTAMySQLAgentValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e RTAMySQLAgentValidationError) ErrorName() string { return "RTAMySQLAgentValidationError" } + +// Error satisfies the builtin error interface +func (e RTAMySQLAgentValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sRTAMySQLAgent.%s: %s%s", + key, + e.field, + e.reason, + cause, + ) +} + +var _ error = RTAMySQLAgentValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = RTAMySQLAgentValidationError{} + // Validate checks the field values on QANPostgreSQLPgStatementsAgent with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. @@ -3970,6 +4120,40 @@ func (m *ListAgentsResponse) validate(all bool) error { } + for idx, item := range m.GetRtaMysqlAgent() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListAgentsResponseValidationError{ + field: fmt.Sprintf("RtaMysqlAgent[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListAgentsResponseValidationError{ + field: fmt.Sprintf("RtaMysqlAgent[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListAgentsResponseValidationError{ + field: fmt.Sprintf("RtaMysqlAgent[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + if len(errors) > 0 { return ListAgentsResponseMultiError(errors) } @@ -4965,6 +5149,47 @@ func (m *GetAgentResponse) validate(all bool) error { } } + case *GetAgentResponse_RtaMysqlAgent: + if v == nil { + err := GetAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetRtaMysqlAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetAgentResponseValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetAgentResponseValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRtaMysqlAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetAgentResponseValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + default: _ = v // ensures v is used } @@ -5989,6 +6214,47 @@ func (m *AddAgentRequest) validate(all bool) error { } } + case *AddAgentRequest_RtaMysqlAgent: + if v == nil { + err := AddAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetRtaMysqlAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AddAgentRequestValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AddAgentRequestValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRtaMysqlAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AddAgentRequestValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + default: _ = v // ensures v is used } @@ -6792,30 +7058,71 @@ func (m *AddAgentResponse) validate(all bool) error { } } - default: - _ = v // ensures v is used - } - - if len(errors) > 0 { - return AddAgentResponseMultiError(errors) - } - - return nil -} - -// AddAgentResponseMultiError is an error wrapping multiple validation errors -// returned by AddAgentResponse.ValidateAll() if the designated constraints -// aren't met. -type AddAgentResponseMultiError []error + case *AddAgentResponse_RtaMysqlAgent: + if v == nil { + err := AddAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } -// Error returns a concatenation of all the error messages it wraps. -func (m AddAgentResponseMultiError) Error() string { - msgs := make([]string, 0, len(m)) - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} + if all { + switch v := interface{}(m.GetRtaMysqlAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AddAgentResponseValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AddAgentResponseValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRtaMysqlAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AddAgentResponseValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + + default: + _ = v // ensures v is used + } + + if len(errors) > 0 { + return AddAgentResponseMultiError(errors) + } + + return nil +} + +// AddAgentResponseMultiError is an error wrapping multiple validation errors +// returned by AddAgentResponse.ValidateAll() if the designated constraints +// aren't met. +type AddAgentResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AddAgentResponseMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} // AllErrors returns a list of validation violation errors. func (m AddAgentResponseMultiError) AllErrors() []error { return m } @@ -7606,6 +7913,47 @@ func (m *ChangeAgentRequest) validate(all bool) error { } } + case *ChangeAgentRequest_RtaMysqlAgent: + if v == nil { + err := ChangeAgentRequestValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetRtaMysqlAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentRequestValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRtaMysqlAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentRequestValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + default: _ = v // ensures v is used } @@ -8411,6 +8759,47 @@ func (m *ChangeAgentResponse) validate(all bool) error { } } + case *ChangeAgentResponse_RtaMysqlAgent: + if v == nil { + err := ChangeAgentResponseValidationError{ + field: "Agent", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetRtaMysqlAgent()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeAgentResponseValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRtaMysqlAgent()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeAgentResponseValidationError{ + field: "RtaMysqlAgent", + reason: "embedded message failed validation", + cause: err, + } + } + } + default: _ = v // ensures v is used } @@ -14941,6 +15330,385 @@ var _ interface { ErrorName() string } = ChangeRTAMongoDBAgentParamsValidationError{} +// Validate checks the field values on AddRTAMySQLAgentParams with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *AddRTAMySQLAgentParams) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AddRTAMySQLAgentParams with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// AddRTAMySQLAgentParamsMultiError, or nil if none found. +func (m *AddRTAMySQLAgentParams) ValidateAll() error { + return m.validate(true) +} + +func (m *AddRTAMySQLAgentParams) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if utf8.RuneCountInString(m.GetPmmAgentId()) < 1 { + err := AddRTAMySQLAgentParamsValidationError{ + field: "PmmAgentId", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if utf8.RuneCountInString(m.GetServiceId()) < 1 { + err := AddRTAMySQLAgentParamsValidationError{ + field: "ServiceId", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for Username + + // no validation rules for Password + + // no validation rules for CustomLabels + + // no validation rules for LogLevel + + // no validation rules for Tls + + // no validation rules for TlsSkipVerify + + // no validation rules for TlsCa + + // no validation rules for TlsCert + + // no validation rules for TlsKey + + // no validation rules for SkipConnectionCheck + + if all { + switch v := interface{}(m.GetRtaOptions()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AddRTAMySQLAgentParamsValidationError{ + field: "RtaOptions", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AddRTAMySQLAgentParamsValidationError{ + field: "RtaOptions", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRtaOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AddRTAMySQLAgentParamsValidationError{ + field: "RtaOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return AddRTAMySQLAgentParamsMultiError(errors) + } + + return nil +} + +// AddRTAMySQLAgentParamsMultiError is an error wrapping multiple validation +// errors returned by AddRTAMySQLAgentParams.ValidateAll() if the designated +// constraints aren't met. +type AddRTAMySQLAgentParamsMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AddRTAMySQLAgentParamsMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m AddRTAMySQLAgentParamsMultiError) AllErrors() []error { return m } + +// AddRTAMySQLAgentParamsValidationError is the validation error returned by +// AddRTAMySQLAgentParams.Validate if the designated constraints aren't met. +type AddRTAMySQLAgentParamsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AddRTAMySQLAgentParamsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AddRTAMySQLAgentParamsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AddRTAMySQLAgentParamsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AddRTAMySQLAgentParamsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AddRTAMySQLAgentParamsValidationError) ErrorName() string { + return "AddRTAMySQLAgentParamsValidationError" +} + +// Error satisfies the builtin error interface +func (e AddRTAMySQLAgentParamsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sAddRTAMySQLAgentParams.%s: %s%s", + key, + e.field, + e.reason, + cause, + ) +} + +var _ error = AddRTAMySQLAgentParamsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AddRTAMySQLAgentParamsValidationError{} + +// Validate checks the field values on ChangeRTAMySQLAgentParams with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *ChangeRTAMySQLAgentParams) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ChangeRTAMySQLAgentParams with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// ChangeRTAMySQLAgentParamsMultiError, or nil if none found. +func (m *ChangeRTAMySQLAgentParams) ValidateAll() error { + return m.validate(true) +} + +func (m *ChangeRTAMySQLAgentParams) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.Enable != nil { + // no validation rules for Enable + } + + if m.CustomLabels != nil { + if all { + switch v := interface{}(m.GetCustomLabels()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeRTAMySQLAgentParamsValidationError{ + field: "CustomLabels", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeRTAMySQLAgentParamsValidationError{ + field: "CustomLabels", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCustomLabels()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeRTAMySQLAgentParamsValidationError{ + field: "CustomLabels", + reason: "embedded message failed validation", + cause: err, + } + } + } + } + + if m.LogLevel != nil { + // no validation rules for LogLevel + } + + if m.Username != nil { + // no validation rules for Username + } + + if m.Password != nil { + // no validation rules for Password + } + + if m.Tls != nil { + // no validation rules for Tls + } + + if m.TlsSkipVerify != nil { + // no validation rules for TlsSkipVerify + } + + if m.TlsCa != nil { + // no validation rules for TlsCa + } + + if m.TlsCert != nil { + // no validation rules for TlsCert + } + + if m.TlsKey != nil { + // no validation rules for TlsKey + } + + if m.RtaOptions != nil { + if all { + switch v := interface{}(m.GetRtaOptions()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ChangeRTAMySQLAgentParamsValidationError{ + field: "RtaOptions", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ChangeRTAMySQLAgentParamsValidationError{ + field: "RtaOptions", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRtaOptions()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ChangeRTAMySQLAgentParamsValidationError{ + field: "RtaOptions", + reason: "embedded message failed validation", + cause: err, + } + } + } + } + + if m.SkipConnectionCheck != nil { + // no validation rules for SkipConnectionCheck + } + + if len(errors) > 0 { + return ChangeRTAMySQLAgentParamsMultiError(errors) + } + + return nil +} + +// ChangeRTAMySQLAgentParamsMultiError is an error wrapping multiple validation +// errors returned by ChangeRTAMySQLAgentParams.ValidateAll() if the +// designated constraints aren't met. +type ChangeRTAMySQLAgentParamsMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ChangeRTAMySQLAgentParamsMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ChangeRTAMySQLAgentParamsMultiError) AllErrors() []error { return m } + +// ChangeRTAMySQLAgentParamsValidationError is the validation error returned by +// ChangeRTAMySQLAgentParams.Validate if the designated constraints aren't met. +type ChangeRTAMySQLAgentParamsValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ChangeRTAMySQLAgentParamsValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ChangeRTAMySQLAgentParamsValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ChangeRTAMySQLAgentParamsValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ChangeRTAMySQLAgentParamsValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ChangeRTAMySQLAgentParamsValidationError) ErrorName() string { + return "ChangeRTAMySQLAgentParamsValidationError" +} + +// Error satisfies the builtin error interface +func (e ChangeRTAMySQLAgentParamsValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sChangeRTAMySQLAgentParams.%s: %s%s", + key, + e.field, + e.reason, + cause, + ) +} + +var _ error = ChangeRTAMySQLAgentParamsValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ChangeRTAMySQLAgentParamsValidationError{} + // Validate checks the field values on RemoveAgentRequest with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. diff --git a/api/inventory/v1/agents.proto b/api/inventory/v1/agents.proto index 61f618e8e8b..866060e4c3e 100644 --- a/api/inventory/v1/agents.proto +++ b/api/inventory/v1/agents.proto @@ -34,6 +34,7 @@ enum AgentType { AGENT_TYPE_AZURE_DATABASE_EXPORTER = 15; AGENT_TYPE_NOMAD_AGENT = 16; AGENT_TYPE_RTA_MONGODB_AGENT = 19; + AGENT_TYPE_RTA_MYSQL_AGENT = 20; } // PMMAgent runs on Generic or Container Node. @@ -576,6 +577,32 @@ message RTAMongoDBAgent { LogLevel log_level = 11; } +// RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server. +message RTAMySQLAgent { + // Unique agent identifier. + string agent_id = 1; + // The pmm-agent identifier which runs this instance. + string pmm_agent_id = 2; + // Desired Agent status: enabled (false) or disabled (true). + bool disabled = 3; + // Service identifier. + string service_id = 4; + // MySQL username for getting the currently running queries. + string username = 5 [(extensions.v1.sensitive) = REDACT_TYPE_FULL]; + // Use TLS for database connections. + bool tls = 6; + // Skip TLS certificate and hostname validation. + bool tls_skip_verify = 7; + // Custom user-assigned labels. + map custom_labels = 8; + // Real-Time Analytics options. + RTAOptions rta_options = 9; + // Actual Agent status. + AgentStatus status = 10; + // Log level for exporter. + LogLevel log_level = 11; +} + // QANPostgreSQLPgStatementsAgent runs within pmm-agent and sends PostgreSQL Query Analytics data to the PMM Server. message QANPostgreSQLPgStatementsAgent { // Unique randomly generated instance identifier. @@ -807,6 +834,7 @@ message ListAgentsResponse { repeated NomadAgent nomad_agent = 16; repeated ValkeyExporter valkey_exporter = 17; repeated RTAMongoDBAgent rta_mongodb_agent = 19; + repeated RTAMySQLAgent rta_mysql_agent = 20; } // Get @@ -837,6 +865,7 @@ message GetAgentResponse { NomadAgent nomad_agent = 16; ValkeyExporter valkey_exporter = 17; RTAMongoDBAgent rta_mongodb_agent = 19; + RTAMySQLAgent rta_mysql_agent = 20; } } @@ -877,6 +906,7 @@ message AddAgentRequest { AddQANPostgreSQLPgStatMonitorAgentParams qan_postgresql_pgstatmonitor_agent = 14; AddValkeyExporterParams valkey_exporter = 15; AddRTAMongoDBAgentParams rta_mongodb_agent = 17; + AddRTAMySQLAgentParams rta_mysql_agent = 18; } } @@ -899,6 +929,7 @@ message AddAgentResponse { QANPostgreSQLPgStatMonitorAgent qan_postgresql_pgstatmonitor_agent = 14; ValkeyExporter valkey_exporter = 15; RTAMongoDBAgent rta_mongodb_agent = 17; + RTAMySQLAgent rta_mysql_agent = 18; } } @@ -925,6 +956,7 @@ message ChangeAgentRequest { ChangeNomadAgentParams nomad_agent = 15; ChangeValkeyExporterParams valkey_exporter = 16; ChangeRTAMongoDBAgentParams rta_mongodb_agent = 18; + ChangeRTAMySQLAgentParams rta_mysql_agent = 19; } } @@ -949,6 +981,7 @@ message ChangeAgentResponse { NomadAgent nomad_agent = 15; ValkeyExporter valkey_exporter = 16; RTAMongoDBAgent rta_mongodb_agent = 18; + RTAMySQLAgent rta_mysql_agent = 19; } } @@ -2103,6 +2136,66 @@ message ChangeRTAMongoDBAgentParams { optional bool skip_connection_check = 13; } +// Add/Change RTAMySQLAgent + +message AddRTAMySQLAgentParams { + // The pmm-agent identifier which runs this instance. + string pmm_agent_id = 1 [(validate.rules).string.min_len = 1]; + // Service identifier. + string service_id = 2 [(validate.rules).string.min_len = 1]; + // MySQL username for getting queries data. + string username = 3 [(extensions.v1.sensitive) = REDACT_TYPE_FULL]; + // MySQL password for getting queries data. + string password = 4 [(extensions.v1.sensitive) = REDACT_TYPE_FULL]; + // Custom user-assigned labels. + map custom_labels = 5; + // Log level for agent. + LogLevel log_level = 6; + + // MySQL specific options. + // Use TLS for database connections. + bool tls = 7; + // Skip TLS certificate and hostname validation. + bool tls_skip_verify = 8; + // Certificate Authority certificate chain. + string tls_ca = 9; + // Client certificate. + string tls_cert = 10 [(extensions.v1.sensitive) = REDACT_TYPE_FULL]; + // Client key. + string tls_key = 11 [(extensions.v1.sensitive) = REDACT_TYPE_FULL]; + // Skip connection check. + bool skip_connection_check = 12; + // Real-Time Analytics options. + RTAOptions rta_options = 13; +} + +message ChangeRTAMySQLAgentParams { + // Enable this Agent. Agents are enabled by default when they get added. + optional bool enable = 1; + // Replace all custom user-assigned labels. + optional common.StringMap custom_labels = 2; + // Log level for exporter. + optional LogLevel log_level = 3; + // MySQL username for getting queries data. + optional string username = 4 [(extensions.v1.sensitive) = REDACT_TYPE_FULL]; + // MySQL password for getting queries data. + optional string password = 5 [(extensions.v1.sensitive) = REDACT_TYPE_FULL]; + // Use TLS for database connections. + optional bool tls = 6; + // Skip TLS certificate and hostname validation. + optional bool tls_skip_verify = 7; + // Certificate Authority certificate chain. + optional string tls_ca = 8; + // Client certificate. + optional string tls_cert = 9 [(extensions.v1.sensitive) = REDACT_TYPE_FULL]; + // Client key. + optional string tls_key = 10 [(extensions.v1.sensitive) = REDACT_TYPE_FULL]; + // Real-Time Analytics options. + optional RTAOptions rta_options = 11; + // Skip connection check. + optional bool skip_connection_check = 12; +} + // Remove message RemoveAgentRequest { 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 d8d1b5c36a0..3208f1322dc 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 @@ -238,6 +238,9 @@ type AddAgentBody struct { // rta mongodb agent RtaMongodbAgent *AddAgentParamsBodyRtaMongodbAgent `json:"rta_mongodb_agent,omitempty"` + // rta mysql agent + RtaMysqlAgent *AddAgentParamsBodyRtaMysqlAgent `json:"rta_mysql_agent,omitempty"` + // valkey exporter ValkeyExporter *AddAgentParamsBodyValkeyExporter `json:"valkey_exporter,omitempty"` } @@ -310,6 +313,10 @@ func (o *AddAgentBody) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := o.validateRtaMysqlAgent(formats); err != nil { + res = append(res, err) + } + if err := o.validateValkeyExporter(formats); err != nil { res = append(res, err) } @@ -688,6 +695,29 @@ func (o *AddAgentBody) validateRtaMongodbAgent(formats strfmt.Registry) error { return nil } +func (o *AddAgentBody) validateRtaMysqlAgent(formats strfmt.Registry) error { + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + if o.RtaMysqlAgent != nil { + if err := o.RtaMysqlAgent.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("body" + "." + "rta_mysql_agent") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("body" + "." + "rta_mysql_agent") + } + + return err + } + } + + return nil +} + func (o *AddAgentBody) validateValkeyExporter(formats strfmt.Registry) error { if swag.IsZero(o.ValkeyExporter) { // not required return nil @@ -779,6 +809,10 @@ func (o *AddAgentBody) ContextValidate(ctx context.Context, formats strfmt.Regis res = append(res, err) } + if err := o.contextValidateRtaMysqlAgent(ctx, formats); err != nil { + res = append(res, err) + } + if err := o.contextValidateValkeyExporter(ctx, formats); err != nil { res = append(res, err) } @@ -1173,6 +1207,30 @@ func (o *AddAgentBody) contextValidateRtaMongodbAgent(ctx context.Context, forma return nil } +func (o *AddAgentBody) contextValidateRtaMysqlAgent(ctx context.Context, formats strfmt.Registry) error { + if o.RtaMysqlAgent != nil { + + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + if err := o.RtaMysqlAgent.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("body" + "." + "rta_mysql_agent") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("body" + "." + "rta_mysql_agent") + } + + return err + } + } + + return nil +} + func (o *AddAgentBody) contextValidateValkeyExporter(ctx context.Context, formats strfmt.Registry) error { if o.ValkeyExporter != nil { @@ -1496,6 +1554,9 @@ type AddAgentOKBody struct { // rta mongodb agent RtaMongodbAgent *AddAgentOKBodyRtaMongodbAgent `json:"rta_mongodb_agent,omitempty"` + // rta mysql agent + RtaMysqlAgent *AddAgentOKBodyRtaMysqlAgent `json:"rta_mysql_agent,omitempty"` + // valkey exporter ValkeyExporter *AddAgentOKBodyValkeyExporter `json:"valkey_exporter,omitempty"` } @@ -1568,6 +1629,10 @@ func (o *AddAgentOKBody) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := o.validateRtaMysqlAgent(formats); err != nil { + res = append(res, err) + } + if err := o.validateValkeyExporter(formats); err != nil { res = append(res, err) } @@ -1946,6 +2011,29 @@ func (o *AddAgentOKBody) validateRtaMongodbAgent(formats strfmt.Registry) error return nil } +func (o *AddAgentOKBody) validateRtaMysqlAgent(formats strfmt.Registry) error { + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + if o.RtaMysqlAgent != nil { + if err := o.RtaMysqlAgent.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("addAgentOk" + "." + "rta_mysql_agent") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("addAgentOk" + "." + "rta_mysql_agent") + } + + return err + } + } + + return nil +} + func (o *AddAgentOKBody) validateValkeyExporter(formats strfmt.Registry) error { if swag.IsZero(o.ValkeyExporter) { // not required return nil @@ -2037,6 +2125,10 @@ func (o *AddAgentOKBody) ContextValidate(ctx context.Context, formats strfmt.Reg res = append(res, err) } + if err := o.contextValidateRtaMysqlAgent(ctx, formats); err != nil { + res = append(res, err) + } + if err := o.contextValidateValkeyExporter(ctx, formats); err != nil { res = append(res, err) } @@ -2431,6 +2523,30 @@ func (o *AddAgentOKBody) contextValidateRtaMongodbAgent(ctx context.Context, for return nil } +func (o *AddAgentOKBody) contextValidateRtaMysqlAgent(ctx context.Context, formats strfmt.Registry) error { + if o.RtaMysqlAgent != nil { + + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + if err := o.RtaMysqlAgent.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("addAgentOk" + "." + "rta_mysql_agent") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("addAgentOk" + "." + "rta_mysql_agent") + } + + return err + } + } + + return nil +} + func (o *AddAgentOKBody) contextValidateValkeyExporter(ctx context.Context, formats strfmt.Registry) error { if o.ValkeyExporter != nil { @@ -6685,6 +6801,309 @@ func (o *AddAgentOKBodyRtaMongodbAgentRtaOptions) UnmarshalBinary(b []byte) erro return nil } +/* +AddAgentOKBodyRtaMysqlAgent RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server. +swagger:model AddAgentOKBodyRtaMysqlAgent +*/ +type AddAgentOKBodyRtaMysqlAgent struct { + // Unique agent identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // MySQL username for getting the currently running queries. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent has been stopped or disabled. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] + Status *string `json:"status,omitempty"` + + // Log level for exporters + // + // - 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"` + + // rta options + RtaOptions *AddAgentOKBodyRtaMysqlAgentRtaOptions `json:"rta_options,omitempty"` +} + +// Validate validates this add agent OK body rta mysql agent +func (o *AddAgentOKBodyRtaMysqlAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if err := o.validateRtaOptions(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var addAgentOkBodyRtaMysqlAgentTypeStatusPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + addAgentOkBodyRtaMysqlAgentTypeStatusPropEnum = append(addAgentOkBodyRtaMysqlAgentTypeStatusPropEnum, v) + } +} + +const ( + + // AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + + // AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + AddAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *AddAgentOKBodyRtaMysqlAgent) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, addAgentOkBodyRtaMysqlAgentTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *AddAgentOKBodyRtaMysqlAgent) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("addAgentOk"+"."+"rta_mysql_agent"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var addAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + addAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum = append(addAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum, v) + } +} + +const ( + + // AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + AddAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *AddAgentOKBodyRtaMysqlAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, addAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *AddAgentOKBodyRtaMysqlAgent) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("addAgentOk"+"."+"rta_mysql_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +func (o *AddAgentOKBodyRtaMysqlAgent) validateRtaOptions(formats strfmt.Registry) error { + if swag.IsZero(o.RtaOptions) { // not required + return nil + } + + if o.RtaOptions != nil { + if err := o.RtaOptions.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("addAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("addAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") + } + + return err + } + } + + return nil +} + +// ContextValidate validate this add agent OK body rta mysql agent based on the context it is used +func (o *AddAgentOKBodyRtaMysqlAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateRtaOptions(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *AddAgentOKBodyRtaMysqlAgent) contextValidateRtaOptions(ctx context.Context, formats strfmt.Registry) error { + if o.RtaOptions != nil { + + if swag.IsZero(o.RtaOptions) { // not required + return nil + } + + if err := o.RtaOptions.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("addAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("addAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") + } + + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *AddAgentOKBodyRtaMysqlAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *AddAgentOKBodyRtaMysqlAgent) UnmarshalBinary(b []byte) error { + var res AddAgentOKBodyRtaMysqlAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +AddAgentOKBodyRtaMysqlAgentRtaOptions RTAOptions holds Real-Time Query Analytics agent options. +swagger:model AddAgentOKBodyRtaMysqlAgentRtaOptions +*/ +type AddAgentOKBodyRtaMysqlAgentRtaOptions struct { + // Query collect interval (default 2s is set by server). + CollectInterval string `json:"collect_interval,omitempty"` +} + +// Validate validates this add agent OK body rta mysql agent rta options +func (o *AddAgentOKBodyRtaMysqlAgentRtaOptions) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this add agent OK body rta mysql agent rta options based on context it is used +func (o *AddAgentOKBodyRtaMysqlAgentRtaOptions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *AddAgentOKBodyRtaMysqlAgentRtaOptions) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *AddAgentOKBodyRtaMysqlAgentRtaOptions) UnmarshalBinary(b []byte) error { + var res AddAgentOKBodyRtaMysqlAgentRtaOptions + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + /* AddAgentOKBodyValkeyExporter ValkeyExporter runs on Generic or Container Node and exposes Valkey Service metrics. swagger:model AddAgentOKBodyValkeyExporter @@ -9193,6 +9612,243 @@ func (o *AddAgentParamsBodyRtaMongodbAgentRtaOptions) UnmarshalBinary(b []byte) return nil } +/* +AddAgentParamsBodyRtaMysqlAgent add agent params body rta mysql agent +swagger:model AddAgentParamsBodyRtaMysqlAgent +*/ +type AddAgentParamsBodyRtaMysqlAgent struct { + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // MySQL username for getting queries data. + Username string `json:"username,omitempty"` + + // MySQL password for getting queries data. + Password string `json:"password,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // Log level for exporters + // + // - 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"` + + // MySQL specific options. + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Certificate Authority certificate chain. + TLSCa string `json:"tls_ca,omitempty"` + + // Client certificate. + TLSCert string `json:"tls_cert,omitempty"` + + // Client key. + TLSKey string `json:"tls_key,omitempty"` + + // Skip connection check. + SkipConnectionCheck bool `json:"skip_connection_check,omitempty"` + + // rta options + RtaOptions *AddAgentParamsBodyRtaMysqlAgentRtaOptions `json:"rta_options,omitempty"` +} + +// Validate validates this add agent params body rta mysql agent +func (o *AddAgentParamsBodyRtaMysqlAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if err := o.validateRtaOptions(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var addAgentParamsBodyRtaMysqlAgentTypeLogLevelPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + addAgentParamsBodyRtaMysqlAgentTypeLogLevelPropEnum = append(addAgentParamsBodyRtaMysqlAgentTypeLogLevelPropEnum, v) + } +} + +const ( + + // AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + AddAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *AddAgentParamsBodyRtaMysqlAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, addAgentParamsBodyRtaMysqlAgentTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *AddAgentParamsBodyRtaMysqlAgent) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("body"+"."+"rta_mysql_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +func (o *AddAgentParamsBodyRtaMysqlAgent) validateRtaOptions(formats strfmt.Registry) error { + if swag.IsZero(o.RtaOptions) { // not required + return nil + } + + if o.RtaOptions != nil { + if err := o.RtaOptions.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("body" + "." + "rta_mysql_agent" + "." + "rta_options") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("body" + "." + "rta_mysql_agent" + "." + "rta_options") + } + + return err + } + } + + return nil +} + +// ContextValidate validate this add agent params body rta mysql agent based on the context it is used +func (o *AddAgentParamsBodyRtaMysqlAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateRtaOptions(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *AddAgentParamsBodyRtaMysqlAgent) contextValidateRtaOptions(ctx context.Context, formats strfmt.Registry) error { + if o.RtaOptions != nil { + + if swag.IsZero(o.RtaOptions) { // not required + return nil + } + + if err := o.RtaOptions.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("body" + "." + "rta_mysql_agent" + "." + "rta_options") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("body" + "." + "rta_mysql_agent" + "." + "rta_options") + } + + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *AddAgentParamsBodyRtaMysqlAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *AddAgentParamsBodyRtaMysqlAgent) UnmarshalBinary(b []byte) error { + var res AddAgentParamsBodyRtaMysqlAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +AddAgentParamsBodyRtaMysqlAgentRtaOptions RTAOptions holds Real-Time Query Analytics agent options. +swagger:model AddAgentParamsBodyRtaMysqlAgentRtaOptions +*/ +type AddAgentParamsBodyRtaMysqlAgentRtaOptions struct { + // Query collect interval (default 2s is set by server). + CollectInterval string `json:"collect_interval,omitempty"` +} + +// Validate validates this add agent params body rta mysql agent rta options +func (o *AddAgentParamsBodyRtaMysqlAgentRtaOptions) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this add agent params body rta mysql agent rta options based on context it is used +func (o *AddAgentParamsBodyRtaMysqlAgentRtaOptions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *AddAgentParamsBodyRtaMysqlAgentRtaOptions) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *AddAgentParamsBodyRtaMysqlAgentRtaOptions) UnmarshalBinary(b []byte) error { + var res AddAgentParamsBodyRtaMysqlAgentRtaOptions + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + /* AddAgentParamsBodyValkeyExporter add agent params body valkey exporter swagger:model AddAgentParamsBodyValkeyExporter 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 bf28c81773b..d4c49640b01 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 @@ -238,6 +238,9 @@ type ChangeAgentBody struct { // rta mongodb agent RtaMongodbAgent *ChangeAgentParamsBodyRtaMongodbAgent `json:"rta_mongodb_agent,omitempty"` + // rta mysql agent + RtaMysqlAgent *ChangeAgentParamsBodyRtaMysqlAgent `json:"rta_mysql_agent,omitempty"` + // valkey exporter ValkeyExporter *ChangeAgentParamsBodyValkeyExporter `json:"valkey_exporter,omitempty"` } @@ -310,6 +313,10 @@ func (o *ChangeAgentBody) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := o.validateRtaMysqlAgent(formats); err != nil { + res = append(res, err) + } + if err := o.validateValkeyExporter(formats); err != nil { res = append(res, err) } @@ -688,6 +695,29 @@ func (o *ChangeAgentBody) validateRtaMongodbAgent(formats strfmt.Registry) error return nil } +func (o *ChangeAgentBody) validateRtaMysqlAgent(formats strfmt.Registry) error { + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + if o.RtaMysqlAgent != nil { + if err := o.RtaMysqlAgent.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("body" + "." + "rta_mysql_agent") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("body" + "." + "rta_mysql_agent") + } + + return err + } + } + + return nil +} + func (o *ChangeAgentBody) validateValkeyExporter(formats strfmt.Registry) error { if swag.IsZero(o.ValkeyExporter) { // not required return nil @@ -779,6 +809,10 @@ func (o *ChangeAgentBody) ContextValidate(ctx context.Context, formats strfmt.Re res = append(res, err) } + if err := o.contextValidateRtaMysqlAgent(ctx, formats); err != nil { + res = append(res, err) + } + if err := o.contextValidateValkeyExporter(ctx, formats); err != nil { res = append(res, err) } @@ -1173,6 +1207,30 @@ func (o *ChangeAgentBody) contextValidateRtaMongodbAgent(ctx context.Context, fo return nil } +func (o *ChangeAgentBody) contextValidateRtaMysqlAgent(ctx context.Context, formats strfmt.Registry) error { + if o.RtaMysqlAgent != nil { + + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + if err := o.RtaMysqlAgent.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("body" + "." + "rta_mysql_agent") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("body" + "." + "rta_mysql_agent") + } + + return err + } + } + + return nil +} + func (o *ChangeAgentBody) contextValidateValkeyExporter(ctx context.Context, formats strfmt.Registry) error { if o.ValkeyExporter != nil { @@ -1496,6 +1554,9 @@ type ChangeAgentOKBody struct { // rta mongodb agent RtaMongodbAgent *ChangeAgentOKBodyRtaMongodbAgent `json:"rta_mongodb_agent,omitempty"` + // rta mysql agent + RtaMysqlAgent *ChangeAgentOKBodyRtaMysqlAgent `json:"rta_mysql_agent,omitempty"` + // valkey exporter ValkeyExporter *ChangeAgentOKBodyValkeyExporter `json:"valkey_exporter,omitempty"` } @@ -1568,6 +1629,10 @@ func (o *ChangeAgentOKBody) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := o.validateRtaMysqlAgent(formats); err != nil { + res = append(res, err) + } + if err := o.validateValkeyExporter(formats); err != nil { res = append(res, err) } @@ -1946,6 +2011,29 @@ func (o *ChangeAgentOKBody) validateRtaMongodbAgent(formats strfmt.Registry) err return nil } +func (o *ChangeAgentOKBody) validateRtaMysqlAgent(formats strfmt.Registry) error { + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + if o.RtaMysqlAgent != nil { + if err := o.RtaMysqlAgent.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("changeAgentOk" + "." + "rta_mysql_agent") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("changeAgentOk" + "." + "rta_mysql_agent") + } + + return err + } + } + + return nil +} + func (o *ChangeAgentOKBody) validateValkeyExporter(formats strfmt.Registry) error { if swag.IsZero(o.ValkeyExporter) { // not required return nil @@ -2037,6 +2125,10 @@ func (o *ChangeAgentOKBody) ContextValidate(ctx context.Context, formats strfmt. res = append(res, err) } + if err := o.contextValidateRtaMysqlAgent(ctx, formats); err != nil { + res = append(res, err) + } + if err := o.contextValidateValkeyExporter(ctx, formats); err != nil { res = append(res, err) } @@ -2431,6 +2523,30 @@ func (o *ChangeAgentOKBody) contextValidateRtaMongodbAgent(ctx context.Context, return nil } +func (o *ChangeAgentOKBody) contextValidateRtaMysqlAgent(ctx context.Context, formats strfmt.Registry) error { + if o.RtaMysqlAgent != nil { + + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + if err := o.RtaMysqlAgent.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("changeAgentOk" + "." + "rta_mysql_agent") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("changeAgentOk" + "." + "rta_mysql_agent") + } + + return err + } + } + + return nil +} + func (o *ChangeAgentOKBody) contextValidateValkeyExporter(ctx context.Context, formats strfmt.Registry) error { if o.ValkeyExporter != nil { @@ -6767,11 +6883,11 @@ func (o *ChangeAgentOKBodyRtaMongodbAgentRtaOptions) UnmarshalBinary(b []byte) e } /* -ChangeAgentOKBodyValkeyExporter ValkeyExporter runs on Generic or Container Node and exposes Valkey Service metrics. -swagger:model ChangeAgentOKBodyValkeyExporter +ChangeAgentOKBodyRtaMysqlAgent RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server. +swagger:model ChangeAgentOKBodyRtaMysqlAgent */ -type ChangeAgentOKBodyValkeyExporter struct { - // Unique randomly generated instance identifier. +type ChangeAgentOKBodyRtaMysqlAgent struct { + // Unique agent identifier. AgentID string `json:"agent_id,omitempty"` // The pmm-agent identifier which runs this instance. @@ -6783,24 +6899,18 @@ type ChangeAgentOKBodyValkeyExporter struct { // Service identifier. ServiceID string `json:"service_id,omitempty"` - // Valkey username for scraping metrics. + // MySQL username for getting the currently running queries. Username string `json:"username,omitempty"` // Use TLS for database connections. TLS bool `json:"tls,omitempty"` - // Skip TLS certificate and hostname verification. + // Skip TLS certificate and hostname validation. TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` // Custom user-assigned labels. CustomLabels map[string]string `json:"custom_labels,omitempty"` - // True if exporter uses push metrics mode. - PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` - - // List of disabled collector names. - DisabledCollectors []string `json:"disabled_collectors"` - // AgentStatus represents actual Agent status. // // - AGENT_STATUS_STARTING: Agent is starting. @@ -6813,31 +6923,29 @@ type ChangeAgentOKBodyValkeyExporter struct { // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] Status *string `json:"status,omitempty"` - // Listen port for scraping metrics. - ListenPort int64 `json:"listen_port,omitempty"` - - // Path to exec process. - ProcessExecPath string `json:"process_exec_path,omitempty"` - - // Optionally expose the exporter process on all public interfaces - ExposeExporter bool `json:"expose_exporter,omitempty"` - - // Connection timeout for exporter (if set). - ConnectionTimeout string `json:"connection_timeout,omitempty"` + // Log level for exporters + // + // - 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"` - // metrics resolutions - MetricsResolutions *ChangeAgentOKBodyValkeyExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` + // rta options + RtaOptions *ChangeAgentOKBodyRtaMysqlAgentRtaOptions `json:"rta_options,omitempty"` } -// Validate validates this change agent OK body valkey exporter -func (o *ChangeAgentOKBodyValkeyExporter) Validate(formats strfmt.Registry) error { +// Validate validates this change agent OK body rta mysql agent +func (o *ChangeAgentOKBodyRtaMysqlAgent) Validate(formats strfmt.Registry) error { var res []error if err := o.validateStatus(formats); err != nil { res = append(res, err) } - if err := o.validateMetricsResolutions(formats); err != nil { + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if err := o.validateRtaOptions(formats); err != nil { res = append(res, err) } @@ -6847,7 +6955,7 @@ func (o *ChangeAgentOKBodyValkeyExporter) Validate(formats strfmt.Registry) erro return nil } -var changeAgentOkBodyValkeyExporterTypeStatusPropEnum []any +var changeAgentOkBodyRtaMysqlAgentTypeStatusPropEnum []any func init() { var res []string @@ -6855,72 +6963,126 @@ func init() { panic(err) } for _, v := range res { - changeAgentOkBodyValkeyExporterTypeStatusPropEnum = append(changeAgentOkBodyValkeyExporterTypeStatusPropEnum, v) + changeAgentOkBodyRtaMysqlAgentTypeStatusPropEnum = append(changeAgentOkBodyRtaMysqlAgentTypeStatusPropEnum, v) } } const ( - // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" - ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + // ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" - // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" - ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + // ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" - // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" - ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + // ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" - // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" - ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + // ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" - // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" - ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + // ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" - // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" - ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + // ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" - // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" - ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + // ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" - // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" - ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" + // ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" ) // prop value enum -func (o *ChangeAgentOKBodyValkeyExporter) validateStatusEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentOkBodyValkeyExporterTypeStatusPropEnum, true); err != nil { +func (o *ChangeAgentOKBodyRtaMysqlAgent) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyRtaMysqlAgentTypeStatusPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentOKBodyValkeyExporter) validateStatus(formats strfmt.Registry) error { +func (o *ChangeAgentOKBodyRtaMysqlAgent) validateStatus(formats strfmt.Registry) error { if swag.IsZero(o.Status) { // not required return nil } // value enum - if err := o.validateStatusEnum("changeAgentOk"+"."+"valkey_exporter"+"."+"status", "body", *o.Status); err != nil { + if err := o.validateStatusEnum("changeAgentOk"+"."+"rta_mysql_agent"+"."+"status", "body", *o.Status); err != nil { return err } return nil } -func (o *ChangeAgentOKBodyValkeyExporter) validateMetricsResolutions(formats strfmt.Registry) error { - if swag.IsZero(o.MetricsResolutions) { // not required +var changeAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum = append(changeAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentOKBodyRtaMysqlAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyRtaMysqlAgent) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required return nil } - if o.MetricsResolutions != nil { - if err := o.MetricsResolutions.Validate(formats); err != nil { + // value enum + if err := o.validateLogLevelEnum("changeAgentOk"+"."+"rta_mysql_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +func (o *ChangeAgentOKBodyRtaMysqlAgent) validateRtaOptions(formats strfmt.Registry) error { + if swag.IsZero(o.RtaOptions) { // not required + return nil + } + + if o.RtaOptions != nil { + if err := o.RtaOptions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("changeAgentOk" + "." + "valkey_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("changeAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("changeAgentOk" + "." + "valkey_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("changeAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") } return err @@ -6930,11 +7092,11 @@ func (o *ChangeAgentOKBodyValkeyExporter) validateMetricsResolutions(formats str return nil } -// ContextValidate validate this change agent OK body valkey exporter based on the context it is used -func (o *ChangeAgentOKBodyValkeyExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent OK body rta mysql agent based on the context it is used +func (o *ChangeAgentOKBodyRtaMysqlAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error - if err := o.contextValidateMetricsResolutions(ctx, formats); err != nil { + if err := o.contextValidateRtaOptions(ctx, formats); err != nil { res = append(res, err) } @@ -6944,21 +7106,21 @@ func (o *ChangeAgentOKBodyValkeyExporter) ContextValidate(ctx context.Context, f return nil } -func (o *ChangeAgentOKBodyValkeyExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { - if o.MetricsResolutions != nil { +func (o *ChangeAgentOKBodyRtaMysqlAgent) contextValidateRtaOptions(ctx context.Context, formats strfmt.Registry) error { + if o.RtaOptions != nil { - if swag.IsZero(o.MetricsResolutions) { // not required + if swag.IsZero(o.RtaOptions) { // not required return nil } - if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { + if err := o.RtaOptions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("changeAgentOk" + "." + "valkey_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("changeAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("changeAgentOk" + "." + "valkey_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("changeAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") } return err @@ -6969,7 +7131,7 @@ func (o *ChangeAgentOKBodyValkeyExporter) contextValidateMetricsResolutions(ctx } // MarshalBinary interface implementation -func (o *ChangeAgentOKBodyValkeyExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentOKBodyRtaMysqlAgent) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -6977,8 +7139,8 @@ func (o *ChangeAgentOKBodyValkeyExporter) MarshalBinary() ([]byte, error) { } // UnmarshalBinary interface implementation -func (o *ChangeAgentOKBodyValkeyExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentOKBodyValkeyExporter +func (o *ChangeAgentOKBodyRtaMysqlAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyRtaMysqlAgent if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -6987,32 +7149,26 @@ func (o *ChangeAgentOKBodyValkeyExporter) UnmarshalBinary(b []byte) error { } /* -ChangeAgentOKBodyValkeyExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentOKBodyValkeyExporterMetricsResolutions +ChangeAgentOKBodyRtaMysqlAgentRtaOptions RTAOptions holds Real-Time Query Analytics agent options. +swagger:model ChangeAgentOKBodyRtaMysqlAgentRtaOptions */ -type ChangeAgentOKBodyValkeyExporterMetricsResolutions struct { - // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. - Hr string `json:"hr,omitempty"` - - // Medium resolution. In JSON should be represented as a string with number of seconds with `s` suffix. - Mr string `json:"mr,omitempty"` - - // Low resolution. In JSON should be represented as a string with number of seconds with `s` suffix. - Lr string `json:"lr,omitempty"` +type ChangeAgentOKBodyRtaMysqlAgentRtaOptions struct { + // Query collect interval (default 2s is set by server). + CollectInterval string `json:"collect_interval,omitempty"` } -// Validate validates this change agent OK body valkey exporter metrics resolutions -func (o *ChangeAgentOKBodyValkeyExporterMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent OK body rta mysql agent rta options +func (o *ChangeAgentOKBodyRtaMysqlAgentRtaOptions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent OK body valkey exporter metrics resolutions based on context it is used -func (o *ChangeAgentOKBodyValkeyExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent OK body rta mysql agent rta options based on context it is used +func (o *ChangeAgentOKBodyRtaMysqlAgentRtaOptions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentOKBodyValkeyExporterMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentOKBodyRtaMysqlAgentRtaOptions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -7020,8 +7176,8 @@ func (o *ChangeAgentOKBodyValkeyExporterMetricsResolutions) MarshalBinary() ([]b } // UnmarshalBinary interface implementation -func (o *ChangeAgentOKBodyValkeyExporterMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentOKBodyValkeyExporterMetricsResolutions +func (o *ChangeAgentOKBodyRtaMysqlAgentRtaOptions) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyRtaMysqlAgentRtaOptions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -7030,27 +7186,290 @@ func (o *ChangeAgentOKBodyValkeyExporterMetricsResolutions) UnmarshalBinary(b [] } /* -ChangeAgentParamsBodyAzureDatabaseExporter change agent params body azure database exporter -swagger:model ChangeAgentParamsBodyAzureDatabaseExporter +ChangeAgentOKBodyValkeyExporter ValkeyExporter runs on Generic or Container Node and exposes Valkey Service metrics. +swagger:model ChangeAgentOKBodyValkeyExporter */ -type ChangeAgentParamsBodyAzureDatabaseExporter struct { - // Enable this Agent. Agents are enabled by default when they get added. - Enable *bool `json:"enable,omitempty"` +type ChangeAgentOKBodyValkeyExporter struct { + // Unique randomly generated instance identifier. + AgentID string `json:"agent_id,omitempty"` - // Enables push metrics with vmagent. - EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` - // Azure client ID - AzureClientID *string `json:"azure_client_id,omitempty"` + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` - // Azure client secret - AzureClientSecret *string `json:"azure_client_secret,omitempty"` + // Service identifier. + ServiceID string `json:"service_id,omitempty"` - // Azure tenant ID - AzureTenantID *string `json:"azure_tenant_id,omitempty"` + // Valkey username for scraping metrics. + Username string `json:"username,omitempty"` - // Azure subscription ID - AzureSubscriptionID *string `json:"azure_subscription_id,omitempty"` + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname verification. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // True if exporter uses push metrics mode. + PushMetricsEnabled bool `json:"push_metrics_enabled,omitempty"` + + // List of disabled collector names. + DisabledCollectors []string `json:"disabled_collectors"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent has been stopped or disabled. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] + Status *string `json:"status,omitempty"` + + // Listen port for scraping metrics. + ListenPort int64 `json:"listen_port,omitempty"` + + // Path to exec process. + ProcessExecPath string `json:"process_exec_path,omitempty"` + + // Optionally expose the exporter process on all public interfaces + ExposeExporter bool `json:"expose_exporter,omitempty"` + + // Connection timeout for exporter (if set). + ConnectionTimeout string `json:"connection_timeout,omitempty"` + + // metrics resolutions + MetricsResolutions *ChangeAgentOKBodyValkeyExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` +} + +// Validate validates this change agent OK body valkey exporter +func (o *ChangeAgentOKBodyValkeyExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateMetricsResolutions(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var changeAgentOkBodyValkeyExporterTypeStatusPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentOkBodyValkeyExporterTypeStatusPropEnum = append(changeAgentOkBodyValkeyExporterTypeStatusPropEnum, v) + } +} + +const ( + + // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + + // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ChangeAgentOKBodyValkeyExporterStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ChangeAgentOKBodyValkeyExporter) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentOkBodyValkeyExporterTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentOKBodyValkeyExporter) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("changeAgentOk"+"."+"valkey_exporter"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +func (o *ChangeAgentOKBodyValkeyExporter) validateMetricsResolutions(formats strfmt.Registry) error { + if swag.IsZero(o.MetricsResolutions) { // not required + return nil + } + + if o.MetricsResolutions != nil { + if err := o.MetricsResolutions.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("changeAgentOk" + "." + "valkey_exporter" + "." + "metrics_resolutions") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("changeAgentOk" + "." + "valkey_exporter" + "." + "metrics_resolutions") + } + + return err + } + } + + return nil +} + +// ContextValidate validate this change agent OK body valkey exporter based on the context it is used +func (o *ChangeAgentOKBodyValkeyExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateMetricsResolutions(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentOKBodyValkeyExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { + if o.MetricsResolutions != nil { + + if swag.IsZero(o.MetricsResolutions) { // not required + return nil + } + + if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("changeAgentOk" + "." + "valkey_exporter" + "." + "metrics_resolutions") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("changeAgentOk" + "." + "valkey_exporter" + "." + "metrics_resolutions") + } + + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyValkeyExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyValkeyExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyValkeyExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentOKBodyValkeyExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentOKBodyValkeyExporterMetricsResolutions +*/ +type ChangeAgentOKBodyValkeyExporterMetricsResolutions struct { + // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. + Hr string `json:"hr,omitempty"` + + // Medium resolution. In JSON should be represented as a string with number of seconds with `s` suffix. + Mr string `json:"mr,omitempty"` + + // Low resolution. In JSON should be represented as a string with number of seconds with `s` suffix. + Lr string `json:"lr,omitempty"` +} + +// Validate validates this change agent OK body valkey exporter metrics resolutions +func (o *ChangeAgentOKBodyValkeyExporterMetricsResolutions) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent OK body valkey exporter metrics resolutions based on context it is used +func (o *ChangeAgentOKBodyValkeyExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentOKBodyValkeyExporterMetricsResolutions) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentOKBodyValkeyExporterMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentOKBodyValkeyExporterMetricsResolutions + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyAzureDatabaseExporter change agent params body azure database exporter +swagger:model ChangeAgentParamsBodyAzureDatabaseExporter +*/ +type ChangeAgentParamsBodyAzureDatabaseExporter struct { + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` + + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // Azure client ID + AzureClientID *string `json:"azure_client_id,omitempty"` + + // Azure client secret + AzureClientSecret *string `json:"azure_client_secret,omitempty"` + + // Azure tenant ID + AzureTenantID *string `json:"azure_tenant_id,omitempty"` + + // Azure subscription ID + AzureSubscriptionID *string `json:"azure_subscription_id,omitempty"` // Azure resource group. AzureResourceGroup *string `json:"azure_resource_group,omitempty"` @@ -7131,20 +7550,281 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateLogLevelEnum(path, return nil } -func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateLogLevel(formats strfmt.Registry) error { - if swag.IsZero(o.LogLevel) { // not required - return nil +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("body"+"."+"azure_database_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateCustomLabels(formats strfmt.Registry) error { + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if o.CustomLabels != nil { + if err := o.CustomLabels.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "custom_labels") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "custom_labels") + } + + return err + } + } + + return nil +} + +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateMetricsResolutions(formats strfmt.Registry) error { + if swag.IsZero(o.MetricsResolutions) { // not required + return nil + } + + if o.MetricsResolutions != nil { + if err := o.MetricsResolutions.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "metrics_resolutions") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "metrics_resolutions") + } + + return err + } + } + + return nil +} + +// ContextValidate validate this change agent params body azure database exporter based on the context it is used +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateCustomLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if err := o.contextValidateMetricsResolutions(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { + if o.CustomLabels != nil { + + if swag.IsZero(o.CustomLabels) { // not required + return nil + } + + if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "custom_labels") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "custom_labels") + } + + return err + } + } + + return nil +} + +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { + if o.MetricsResolutions != nil { + + if swag.IsZero(o.MetricsResolutions) { // not required + return nil + } + + if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "metrics_resolutions") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "metrics_resolutions") + } + + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyAzureDatabaseExporter + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels +*/ +type ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels struct { + // values + Values map[string]string `json:"values,omitempty"` +} + +// Validate validates this change agent params body azure database exporter custom labels +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body azure database exporter custom labels based on context it is used +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions +*/ +type ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions struct { + // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. + Hr string `json:"hr,omitempty"` + + // Medium resolution. In JSON should be represented as a string with number of seconds with `s` suffix. + Mr string `json:"mr,omitempty"` + + // Low resolution. In JSON should be represented as a string with number of seconds with `s` suffix. + Lr string `json:"lr,omitempty"` +} + +// Validate validates this change agent params body azure database exporter metrics resolutions +func (o *ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body azure database exporter metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyExternalExporter change agent params body external exporter +swagger:model ChangeAgentParamsBodyExternalExporter +*/ +type ChangeAgentParamsBodyExternalExporter struct { + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` + + // Enables push metrics with vmagent. + EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + + // HTTP basic auth username for collecting metrics. + Username *string `json:"username,omitempty"` + + // Scheme to generate URI to exporter metrics endpoints. + Scheme *string `json:"scheme,omitempty"` + + // Path under which metrics are exposed, used to generate URI. + MetricsPath *string `json:"metrics_path,omitempty"` + + // Listen port for scraping metrics. + ListenPort *int64 `json:"listen_port,omitempty"` + + // Skip connection check. + SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` + + // custom labels + CustomLabels *ChangeAgentParamsBodyExternalExporterCustomLabels `json:"custom_labels,omitempty"` + + // metrics resolutions + MetricsResolutions *ChangeAgentParamsBodyExternalExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` +} + +// Validate validates this change agent params body external exporter +func (o *ChangeAgentParamsBodyExternalExporter) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateCustomLabels(formats); err != nil { + res = append(res, err) } - // value enum - if err := o.validateLogLevelEnum("body"+"."+"azure_database_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { - return err + if err := o.validateMetricsResolutions(formats); err != nil { + res = append(res, err) } + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } return nil } -func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyExternalExporter) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -7153,11 +7833,11 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateCustomLabels(format if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "external_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "external_exporter" + "." + "custom_labels") } return err @@ -7167,7 +7847,7 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateCustomLabels(format return nil } -func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyExternalExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -7176,11 +7856,11 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateMetricsResolutions( if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "external_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "external_exporter" + "." + "metrics_resolutions") } return err @@ -7190,8 +7870,8 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) validateMetricsResolutions( return nil } -// ContextValidate validate this change agent params body azure database exporter based on the context it is used -func (o *ChangeAgentParamsBodyAzureDatabaseExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body external exporter based on the context it is used +func (o *ChangeAgentParamsBodyExternalExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -7208,7 +7888,7 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) ContextValidate(ctx context return nil } -func (o *ChangeAgentParamsBodyAzureDatabaseExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyExternalExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -7218,11 +7898,11 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) contextValidateCustomLabels if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "external_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "external_exporter" + "." + "custom_labels") } return err @@ -7232,7 +7912,7 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) contextValidateCustomLabels return nil } -func (o *ChangeAgentParamsBodyAzureDatabaseExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyExternalExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -7242,11 +7922,11 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) contextValidateMetricsResol if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "azure_database_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "external_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "azure_database_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "external_exporter" + "." + "metrics_resolutions") } return err @@ -7257,7 +7937,7 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) contextValidateMetricsResol } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyAzureDatabaseExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyExternalExporter) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -7265,8 +7945,8 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) MarshalBinary() ([]byte, er } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyAzureDatabaseExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyAzureDatabaseExporter +func (o *ChangeAgentParamsBodyExternalExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyExternalExporter if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -7275,26 +7955,26 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporter) UnmarshalBinary(b []byte) e } /* -ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels +ChangeAgentParamsBodyExternalExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyExternalExporterCustomLabels */ -type ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels struct { +type ChangeAgentParamsBodyExternalExporterCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body azure database exporter custom labels -func (o *ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body external exporter custom labels +func (o *ChangeAgentParamsBodyExternalExporterCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body azure database exporter custom labels based on context it is used -func (o *ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body external exporter custom labels based on context it is used +func (o *ChangeAgentParamsBodyExternalExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyExternalExporterCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -7302,8 +7982,8 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels) MarshalBinary() } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels +func (o *ChangeAgentParamsBodyExternalExporterCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyExternalExporterCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -7312,10 +7992,10 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporterCustomLabels) UnmarshalBinary } /* -ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions +ChangeAgentParamsBodyExternalExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyExternalExporterMetricsResolutions */ -type ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions struct { +type ChangeAgentParamsBodyExternalExporterMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -7326,18 +8006,18 @@ type ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body azure database exporter metrics resolutions -func (o *ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body external exporter metrics resolutions +func (o *ChangeAgentParamsBodyExternalExporterMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body azure database exporter metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body external exporter metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyExternalExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyExternalExporterMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -7345,8 +8025,8 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions) MarshalBi } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions +func (o *ChangeAgentParamsBodyExternalExporterMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyExternalExporterMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -7355,42 +8035,91 @@ func (o *ChangeAgentParamsBodyAzureDatabaseExporterMetricsResolutions) Unmarshal } /* -ChangeAgentParamsBodyExternalExporter change agent params body external exporter -swagger:model ChangeAgentParamsBodyExternalExporter +ChangeAgentParamsBodyMongodbExporter change agent params body mongodb exporter +swagger:model ChangeAgentParamsBodyMongodbExporter */ -type ChangeAgentParamsBodyExternalExporter struct { +type ChangeAgentParamsBodyMongodbExporter struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // HTTP basic auth username for collecting metrics. + // MongoDB username for scraping metrics. Username *string `json:"username,omitempty"` - // Scheme to generate URI to exporter metrics endpoints. - Scheme *string `json:"scheme,omitempty"` + // MongoDB password for scraping metrics. + Password *string `json:"password,omitempty"` - // Path under which metrics are exposed, used to generate URI. - MetricsPath *string `json:"metrics_path,omitempty"` + // Use TLS for database connections. + TLS *bool `json:"tls,omitempty"` - // Listen port for scraping metrics. - ListenPort *int64 `json:"listen_port,omitempty"` + // Skip TLS certificate and hostname validation. + TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` + + // Client certificate and key. + TLSCertificateKey *string `json:"tls_certificate_key,omitempty"` + + // Password for decrypting tls_certificate_key. + TLSCertificateKeyFilePassword *string `json:"tls_certificate_key_file_password,omitempty"` + + // Certificate Authority certificate chain. + TLSCa *string `json:"tls_ca,omitempty"` // Skip connection check. SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` + // List of collector names to disable in this exporter. + DisableCollectors []string `json:"disable_collectors"` + + // Authentication mechanism. + AuthenticationMechanism *string `json:"authentication_mechanism,omitempty"` + + // Authentication database. + AuthenticationDatabase *string `json:"authentication_database,omitempty"` + + // Custom password for exporter endpoint /metrics. + AgentPassword *string `json:"agent_password,omitempty"` + + // List of collections to get stats from. Can use * + StatsCollections []string `json:"stats_collections"` + + // Collections limit. Only get Databases and collection stats if the total number of collections in the server is less than this value. 0: no limit + CollectionsLimit *int32 `json:"collections_limit,omitempty"` + + // Enable all collectors. + EnableAllCollectors *bool `json:"enable_all_collectors,omitempty"` + + // Log level for exporters + // + // - 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"` + + // Optionally expose the exporter process on all public interfaces. + ExposeExporter *bool `json:"expose_exporter,omitempty"` + + // Connection timeout for exporter (if set). + ConnectionTimeout string `json:"connection_timeout,omitempty"` + + // Enable collecting histogram bucket metrics from getDiagnosticData. + EnableDiagnosticDataHistograms *bool `json:"enable_diagnostic_data_histograms,omitempty"` + // custom labels - CustomLabels *ChangeAgentParamsBodyExternalExporterCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyMongodbExporterCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyExternalExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyMongodbExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body external exporter -func (o *ChangeAgentParamsBodyExternalExporter) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body mongodb exporter +func (o *ChangeAgentParamsBodyMongodbExporter) Validate(formats strfmt.Registry) error { var res []error + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + if err := o.validateCustomLabels(formats); err != nil { res = append(res, err) } @@ -7405,7 +8134,61 @@ func (o *ChangeAgentParamsBodyExternalExporter) Validate(formats strfmt.Registry return nil } -func (o *ChangeAgentParamsBodyExternalExporter) validateCustomLabels(formats strfmt.Registry) error { +var changeAgentParamsBodyMongodbExporterTypeLogLevelPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + changeAgentParamsBodyMongodbExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyMongodbExporterTypeLogLevelPropEnum, v) + } +} + +const ( + + // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ChangeAgentParamsBodyMongodbExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyMongodbExporterTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ChangeAgentParamsBodyMongodbExporter) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("body"+"."+"mongodb_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +func (o *ChangeAgentParamsBodyMongodbExporter) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -7414,11 +8197,11 @@ func (o *ChangeAgentParamsBodyExternalExporter) validateCustomLabels(formats str if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "external_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "external_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "custom_labels") } return err @@ -7428,7 +8211,7 @@ func (o *ChangeAgentParamsBodyExternalExporter) validateCustomLabels(formats str return nil } -func (o *ChangeAgentParamsBodyExternalExporter) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyMongodbExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -7437,11 +8220,11 @@ func (o *ChangeAgentParamsBodyExternalExporter) validateMetricsResolutions(forma if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "external_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "external_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "metrics_resolutions") } return err @@ -7451,8 +8234,8 @@ func (o *ChangeAgentParamsBodyExternalExporter) validateMetricsResolutions(forma return nil } -// ContextValidate validate this change agent params body external exporter based on the context it is used -func (o *ChangeAgentParamsBodyExternalExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body mongodb exporter based on the context it is used +func (o *ChangeAgentParamsBodyMongodbExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -7469,7 +8252,7 @@ func (o *ChangeAgentParamsBodyExternalExporter) ContextValidate(ctx context.Cont return nil } -func (o *ChangeAgentParamsBodyExternalExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyMongodbExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -7479,11 +8262,11 @@ func (o *ChangeAgentParamsBodyExternalExporter) contextValidateCustomLabels(ctx if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "external_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "external_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "custom_labels") } return err @@ -7493,7 +8276,7 @@ func (o *ChangeAgentParamsBodyExternalExporter) contextValidateCustomLabels(ctx return nil } -func (o *ChangeAgentParamsBodyExternalExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyMongodbExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -7503,11 +8286,11 @@ func (o *ChangeAgentParamsBodyExternalExporter) contextValidateMetricsResolution if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "external_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "external_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "metrics_resolutions") } return err @@ -7518,7 +8301,7 @@ func (o *ChangeAgentParamsBodyExternalExporter) contextValidateMetricsResolution } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyExternalExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyMongodbExporter) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -7526,8 +8309,8 @@ func (o *ChangeAgentParamsBodyExternalExporter) MarshalBinary() ([]byte, error) } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyExternalExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyExternalExporter +func (o *ChangeAgentParamsBodyMongodbExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMongodbExporter if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -7536,26 +8319,26 @@ func (o *ChangeAgentParamsBodyExternalExporter) UnmarshalBinary(b []byte) error } /* -ChangeAgentParamsBodyExternalExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyExternalExporterCustomLabels +ChangeAgentParamsBodyMongodbExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyMongodbExporterCustomLabels */ -type ChangeAgentParamsBodyExternalExporterCustomLabels struct { +type ChangeAgentParamsBodyMongodbExporterCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body external exporter custom labels -func (o *ChangeAgentParamsBodyExternalExporterCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body mongodb exporter custom labels +func (o *ChangeAgentParamsBodyMongodbExporterCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body external exporter custom labels based on context it is used -func (o *ChangeAgentParamsBodyExternalExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body mongodb exporter custom labels based on context it is used +func (o *ChangeAgentParamsBodyMongodbExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyExternalExporterCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyMongodbExporterCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -7563,8 +8346,8 @@ func (o *ChangeAgentParamsBodyExternalExporterCustomLabels) MarshalBinary() ([]b } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyExternalExporterCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyExternalExporterCustomLabels +func (o *ChangeAgentParamsBodyMongodbExporterCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMongodbExporterCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -7573,10 +8356,10 @@ func (o *ChangeAgentParamsBodyExternalExporterCustomLabels) UnmarshalBinary(b [] } /* -ChangeAgentParamsBodyExternalExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyExternalExporterMetricsResolutions +ChangeAgentParamsBodyMongodbExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyMongodbExporterMetricsResolutions */ -type ChangeAgentParamsBodyExternalExporterMetricsResolutions struct { +type ChangeAgentParamsBodyMongodbExporterMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -7587,18 +8370,18 @@ type ChangeAgentParamsBodyExternalExporterMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body external exporter metrics resolutions -func (o *ChangeAgentParamsBodyExternalExporterMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body mongodb exporter metrics resolutions +func (o *ChangeAgentParamsBodyMongodbExporterMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body external exporter metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyExternalExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body mongodb exporter metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyMongodbExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyExternalExporterMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyMongodbExporterMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -7606,8 +8389,8 @@ func (o *ChangeAgentParamsBodyExternalExporterMetricsResolutions) MarshalBinary( } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyExternalExporterMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyExternalExporterMetricsResolutions +func (o *ChangeAgentParamsBodyMongodbExporterMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMongodbExporterMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -7616,20 +8399,20 @@ func (o *ChangeAgentParamsBodyExternalExporterMetricsResolutions) UnmarshalBinar } /* -ChangeAgentParamsBodyMongodbExporter change agent params body mongodb exporter -swagger:model ChangeAgentParamsBodyMongodbExporter +ChangeAgentParamsBodyMysqldExporter change agent params body mysqld exporter +swagger:model ChangeAgentParamsBodyMysqldExporter */ -type ChangeAgentParamsBodyMongodbExporter struct { +type ChangeAgentParamsBodyMysqldExporter struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // MongoDB username for scraping metrics. + // MySQL username for scraping metrics. Username *string `json:"username,omitempty"` - // MongoDB password for scraping metrics. + // MySQL password for scraping metrics. Password *string `json:"password,omitempty"` // Use TLS for database connections. @@ -7638,39 +8421,27 @@ type ChangeAgentParamsBodyMongodbExporter struct { // Skip TLS certificate and hostname validation. TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` - // Client certificate and key. - TLSCertificateKey *string `json:"tls_certificate_key,omitempty"` - - // Password for decrypting tls_certificate_key. - TLSCertificateKeyFilePassword *string `json:"tls_certificate_key_file_password,omitempty"` - // Certificate Authority certificate chain. TLSCa *string `json:"tls_ca,omitempty"` + // Client certificate. + TLSCert *string `json:"tls_cert,omitempty"` + + // Password for decrypting tls_cert. + TLSKey *string `json:"tls_key,omitempty"` + + // Tablestats group collectors will be disabled if there are more than that number of tables. + TablestatsGroupTableLimit *int32 `json:"tablestats_group_table_limit,omitempty"` + // Skip connection check. SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` // List of collector names to disable in this exporter. DisableCollectors []string `json:"disable_collectors"` - // Authentication mechanism. - AuthenticationMechanism *string `json:"authentication_mechanism,omitempty"` - - // Authentication database. - AuthenticationDatabase *string `json:"authentication_database,omitempty"` - // Custom password for exporter endpoint /metrics. AgentPassword *string `json:"agent_password,omitempty"` - // List of collections to get stats from. Can use * - StatsCollections []string `json:"stats_collections"` - - // Collections limit. Only get Databases and collection stats if the total number of collections in the server is less than this value. 0: no limit - CollectionsLimit *int32 `json:"collections_limit,omitempty"` - - // Enable all collectors. - EnableAllCollectors *bool `json:"enable_all_collectors,omitempty"` - // Log level for exporters // // - LOG_LEVEL_UNSPECIFIED: Auto @@ -7683,18 +8454,15 @@ type ChangeAgentParamsBodyMongodbExporter struct { // Connection timeout for exporter (if set). ConnectionTimeout string `json:"connection_timeout,omitempty"` - // Enable collecting histogram bucket metrics from getDiagnosticData. - EnableDiagnosticDataHistograms *bool `json:"enable_diagnostic_data_histograms,omitempty"` - // custom labels - CustomLabels *ChangeAgentParamsBodyMongodbExporterCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyMysqldExporterCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyMongodbExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyMysqldExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body mongodb exporter -func (o *ChangeAgentParamsBodyMongodbExporter) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body mysqld exporter +func (o *ChangeAgentParamsBodyMysqldExporter) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -7715,7 +8483,7 @@ func (o *ChangeAgentParamsBodyMongodbExporter) Validate(formats strfmt.Registry) return nil } -var changeAgentParamsBodyMongodbExporterTypeLogLevelPropEnum []any +var changeAgentParamsBodyMysqldExporterTypeLogLevelPropEnum []any func init() { var res []string @@ -7723,53 +8491,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyMongodbExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyMongodbExporterTypeLogLevelPropEnum, v) + changeAgentParamsBodyMysqldExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyMysqldExporterTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyMongodbExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyMongodbExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyMongodbExporterTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyMysqldExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyMysqldExporterTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyMongodbExporter) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyMysqldExporter) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"mongodb_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"mysqld_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyMongodbExporter) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyMysqldExporter) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -7778,11 +8546,11 @@ func (o *ChangeAgentParamsBodyMongodbExporter) validateCustomLabels(formats strf if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "custom_labels") } return err @@ -7792,7 +8560,7 @@ func (o *ChangeAgentParamsBodyMongodbExporter) validateCustomLabels(formats strf return nil } -func (o *ChangeAgentParamsBodyMongodbExporter) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyMysqldExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -7801,11 +8569,11 @@ func (o *ChangeAgentParamsBodyMongodbExporter) validateMetricsResolutions(format if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "metrics_resolutions") } return err @@ -7815,8 +8583,8 @@ func (o *ChangeAgentParamsBodyMongodbExporter) validateMetricsResolutions(format return nil } -// ContextValidate validate this change agent params body mongodb exporter based on the context it is used -func (o *ChangeAgentParamsBodyMongodbExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body mysqld exporter based on the context it is used +func (o *ChangeAgentParamsBodyMysqldExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -7833,7 +8601,7 @@ func (o *ChangeAgentParamsBodyMongodbExporter) ContextValidate(ctx context.Conte return nil } -func (o *ChangeAgentParamsBodyMongodbExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyMysqldExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -7843,11 +8611,11 @@ func (o *ChangeAgentParamsBodyMongodbExporter) contextValidateCustomLabels(ctx c if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "custom_labels") } return err @@ -7857,7 +8625,7 @@ func (o *ChangeAgentParamsBodyMongodbExporter) contextValidateCustomLabels(ctx c return nil } -func (o *ChangeAgentParamsBodyMongodbExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyMysqldExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -7867,11 +8635,11 @@ func (o *ChangeAgentParamsBodyMongodbExporter) contextValidateMetricsResolutions if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "mongodb_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "mongodb_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "metrics_resolutions") } return err @@ -7882,7 +8650,7 @@ func (o *ChangeAgentParamsBodyMongodbExporter) contextValidateMetricsResolutions } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMongodbExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyMysqldExporter) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -7890,8 +8658,8 @@ func (o *ChangeAgentParamsBodyMongodbExporter) MarshalBinary() ([]byte, error) { } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMongodbExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyMongodbExporter +func (o *ChangeAgentParamsBodyMysqldExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMysqldExporter if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -7900,26 +8668,26 @@ func (o *ChangeAgentParamsBodyMongodbExporter) UnmarshalBinary(b []byte) error { } /* -ChangeAgentParamsBodyMongodbExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyMongodbExporterCustomLabels +ChangeAgentParamsBodyMysqldExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyMysqldExporterCustomLabels */ -type ChangeAgentParamsBodyMongodbExporterCustomLabels struct { +type ChangeAgentParamsBodyMysqldExporterCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body mongodb exporter custom labels -func (o *ChangeAgentParamsBodyMongodbExporterCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body mysqld exporter custom labels +func (o *ChangeAgentParamsBodyMysqldExporterCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body mongodb exporter custom labels based on context it is used -func (o *ChangeAgentParamsBodyMongodbExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body mysqld exporter custom labels based on context it is used +func (o *ChangeAgentParamsBodyMysqldExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMongodbExporterCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyMysqldExporterCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -7927,8 +8695,8 @@ func (o *ChangeAgentParamsBodyMongodbExporterCustomLabels) MarshalBinary() ([]by } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMongodbExporterCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyMongodbExporterCustomLabels +func (o *ChangeAgentParamsBodyMysqldExporterCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMysqldExporterCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -7937,10 +8705,10 @@ func (o *ChangeAgentParamsBodyMongodbExporterCustomLabels) UnmarshalBinary(b []b } /* -ChangeAgentParamsBodyMongodbExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyMongodbExporterMetricsResolutions +ChangeAgentParamsBodyMysqldExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyMysqldExporterMetricsResolutions */ -type ChangeAgentParamsBodyMongodbExporterMetricsResolutions struct { +type ChangeAgentParamsBodyMysqldExporterMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -7951,18 +8719,18 @@ type ChangeAgentParamsBodyMongodbExporterMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body mongodb exporter metrics resolutions -func (o *ChangeAgentParamsBodyMongodbExporterMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body mysqld exporter metrics resolutions +func (o *ChangeAgentParamsBodyMysqldExporterMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body mongodb exporter metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyMongodbExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body mysqld exporter metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyMysqldExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMongodbExporterMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyMysqldExporterMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -7970,8 +8738,8 @@ func (o *ChangeAgentParamsBodyMongodbExporterMetricsResolutions) MarshalBinary() } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMongodbExporterMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyMongodbExporterMetricsResolutions +func (o *ChangeAgentParamsBodyMysqldExporterMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyMysqldExporterMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -7980,70 +8748,37 @@ func (o *ChangeAgentParamsBodyMongodbExporterMetricsResolutions) UnmarshalBinary } /* -ChangeAgentParamsBodyMysqldExporter change agent params body mysqld exporter -swagger:model ChangeAgentParamsBodyMysqldExporter +ChangeAgentParamsBodyNodeExporter change agent params body node exporter +swagger:model ChangeAgentParamsBodyNodeExporter */ -type ChangeAgentParamsBodyMysqldExporter struct { +type ChangeAgentParamsBodyNodeExporter struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // MySQL username for scraping metrics. - Username *string `json:"username,omitempty"` - - // MySQL password for scraping metrics. - Password *string `json:"password,omitempty"` - - // Use TLS for database connections. - TLS *bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. - TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` - - // Certificate Authority certificate chain. - TLSCa *string `json:"tls_ca,omitempty"` - - // Client certificate. - TLSCert *string `json:"tls_cert,omitempty"` - - // Password for decrypting tls_cert. - TLSKey *string `json:"tls_key,omitempty"` - - // Tablestats group collectors will be disabled if there are more than that number of tables. - TablestatsGroupTableLimit *int32 `json:"tablestats_group_table_limit,omitempty"` - - // Skip connection check. - SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` - // List of collector names to disable in this exporter. DisableCollectors []string `json:"disable_collectors"` - // Custom password for exporter endpoint /metrics. - AgentPassword *string `json:"agent_password,omitempty"` - // Log level for exporters // // - 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"` - // Optionally expose the exporter process on all public interfaces. + // Expose the node_exporter process on all public interfaces. ExposeExporter *bool `json:"expose_exporter,omitempty"` - // Connection timeout for exporter (if set). - ConnectionTimeout string `json:"connection_timeout,omitempty"` - // custom labels - CustomLabels *ChangeAgentParamsBodyMysqldExporterCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyNodeExporterCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyMysqldExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyNodeExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body mysqld exporter -func (o *ChangeAgentParamsBodyMysqldExporter) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body node exporter +func (o *ChangeAgentParamsBodyNodeExporter) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -8064,7 +8799,7 @@ func (o *ChangeAgentParamsBodyMysqldExporter) Validate(formats strfmt.Registry) return nil } -var changeAgentParamsBodyMysqldExporterTypeLogLevelPropEnum []any +var changeAgentParamsBodyNodeExporterTypeLogLevelPropEnum []any func init() { var res []string @@ -8072,53 +8807,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyMysqldExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyMysqldExporterTypeLogLevelPropEnum, v) + changeAgentParamsBodyNodeExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyNodeExporterTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyMysqldExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyMysqldExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyMysqldExporterTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyNodeExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyNodeExporterTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyMysqldExporter) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyNodeExporter) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"mysqld_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"node_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyMysqldExporter) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyNodeExporter) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -8127,11 +8862,11 @@ func (o *ChangeAgentParamsBodyMysqldExporter) validateCustomLabels(formats strfm if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "node_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "node_exporter" + "." + "custom_labels") } return err @@ -8141,7 +8876,7 @@ func (o *ChangeAgentParamsBodyMysqldExporter) validateCustomLabels(formats strfm return nil } -func (o *ChangeAgentParamsBodyMysqldExporter) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyNodeExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -8150,11 +8885,11 @@ func (o *ChangeAgentParamsBodyMysqldExporter) validateMetricsResolutions(formats if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "node_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "node_exporter" + "." + "metrics_resolutions") } return err @@ -8164,8 +8899,8 @@ func (o *ChangeAgentParamsBodyMysqldExporter) validateMetricsResolutions(formats return nil } -// ContextValidate validate this change agent params body mysqld exporter based on the context it is used -func (o *ChangeAgentParamsBodyMysqldExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body node exporter based on the context it is used +func (o *ChangeAgentParamsBodyNodeExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -8182,7 +8917,7 @@ func (o *ChangeAgentParamsBodyMysqldExporter) ContextValidate(ctx context.Contex return nil } -func (o *ChangeAgentParamsBodyMysqldExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyNodeExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -8192,11 +8927,11 @@ func (o *ChangeAgentParamsBodyMysqldExporter) contextValidateCustomLabels(ctx co if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "node_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "node_exporter" + "." + "custom_labels") } return err @@ -8206,7 +8941,7 @@ func (o *ChangeAgentParamsBodyMysqldExporter) contextValidateCustomLabels(ctx co return nil } -func (o *ChangeAgentParamsBodyMysqldExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyNodeExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -8216,11 +8951,11 @@ func (o *ChangeAgentParamsBodyMysqldExporter) contextValidateMetricsResolutions( if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "mysqld_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "node_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "mysqld_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "node_exporter" + "." + "metrics_resolutions") } return err @@ -8231,7 +8966,7 @@ func (o *ChangeAgentParamsBodyMysqldExporter) contextValidateMetricsResolutions( } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMysqldExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyNodeExporter) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -8239,8 +8974,8 @@ func (o *ChangeAgentParamsBodyMysqldExporter) MarshalBinary() ([]byte, error) { } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMysqldExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyMysqldExporter +func (o *ChangeAgentParamsBodyNodeExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyNodeExporter if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -8249,26 +8984,26 @@ func (o *ChangeAgentParamsBodyMysqldExporter) UnmarshalBinary(b []byte) error { } /* -ChangeAgentParamsBodyMysqldExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyMysqldExporterCustomLabels +ChangeAgentParamsBodyNodeExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyNodeExporterCustomLabels */ -type ChangeAgentParamsBodyMysqldExporterCustomLabels struct { +type ChangeAgentParamsBodyNodeExporterCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body mysqld exporter custom labels -func (o *ChangeAgentParamsBodyMysqldExporterCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body node exporter custom labels +func (o *ChangeAgentParamsBodyNodeExporterCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body mysqld exporter custom labels based on context it is used -func (o *ChangeAgentParamsBodyMysqldExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body node exporter custom labels based on context it is used +func (o *ChangeAgentParamsBodyNodeExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMysqldExporterCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyNodeExporterCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -8276,8 +9011,8 @@ func (o *ChangeAgentParamsBodyMysqldExporterCustomLabels) MarshalBinary() ([]byt } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMysqldExporterCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyMysqldExporterCustomLabels +func (o *ChangeAgentParamsBodyNodeExporterCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyNodeExporterCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -8286,10 +9021,10 @@ func (o *ChangeAgentParamsBodyMysqldExporterCustomLabels) UnmarshalBinary(b []by } /* -ChangeAgentParamsBodyMysqldExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyMysqldExporterMetricsResolutions +ChangeAgentParamsBodyNodeExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyNodeExporterMetricsResolutions */ -type ChangeAgentParamsBodyMysqldExporterMetricsResolutions struct { +type ChangeAgentParamsBodyNodeExporterMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -8300,18 +9035,18 @@ type ChangeAgentParamsBodyMysqldExporterMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body mysqld exporter metrics resolutions -func (o *ChangeAgentParamsBodyMysqldExporterMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body node exporter metrics resolutions +func (o *ChangeAgentParamsBodyNodeExporterMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body mysqld exporter metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyMysqldExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body node exporter metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyNodeExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMysqldExporterMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyNodeExporterMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -8319,8 +9054,8 @@ func (o *ChangeAgentParamsBodyMysqldExporterMetricsResolutions) MarshalBinary() } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyMysqldExporterMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyMysqldExporterMetricsResolutions +func (o *ChangeAgentParamsBodyNodeExporterMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyNodeExporterMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -8329,37 +9064,110 @@ func (o *ChangeAgentParamsBodyMysqldExporterMetricsResolutions) UnmarshalBinary( } /* -ChangeAgentParamsBodyNodeExporter change agent params body node exporter -swagger:model ChangeAgentParamsBodyNodeExporter +ChangeAgentParamsBodyNomadAgent change agent params body nomad agent +swagger:model ChangeAgentParamsBodyNomadAgent */ -type ChangeAgentParamsBodyNodeExporter struct { +type ChangeAgentParamsBodyNomadAgent struct { + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` +} + +// Validate validates this change agent params body nomad agent +func (o *ChangeAgentParamsBodyNomadAgent) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this change agent params body nomad agent based on context it is used +func (o *ChangeAgentParamsBodyNomadAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ChangeAgentParamsBodyNomadAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ChangeAgentParamsBodyNomadAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyNomadAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ChangeAgentParamsBodyPostgresExporter change agent params body postgres exporter +swagger:model ChangeAgentParamsBodyPostgresExporter +*/ +type ChangeAgentParamsBodyPostgresExporter struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` + // PostgreSQL username for scraping metrics. + Username *string `json:"username,omitempty"` + + // PostgreSQL password for scraping metrics. + Password *string `json:"password,omitempty"` + + // Use TLS for database connections. + TLS *bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` + + // Skip connection check. + SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` + // List of collector names to disable in this exporter. DisableCollectors []string `json:"disable_collectors"` + // TLS CA certificate. + TLSCa *string `json:"tls_ca,omitempty"` + + // TLS Certificate. + TLSCert *string `json:"tls_cert,omitempty"` + + // TLS Certificate Key. + TLSKey *string `json:"tls_key,omitempty"` + + // Custom password for exporter endpoint /metrics. + AgentPassword *string `json:"agent_password,omitempty"` + // Log level for exporters // // - 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"` - // Expose the node_exporter process on all public interfaces. + // Limit of databases for auto-discovery. + AutoDiscoveryLimit *int32 `json:"auto_discovery_limit,omitempty"` + + // Optionally expose the exporter process on all public interfaces. ExposeExporter *bool `json:"expose_exporter,omitempty"` + // Maximum number of connections that exporter can open to the database instance. + MaxExporterConnections *int32 `json:"max_exporter_connections,omitempty"` + + // Connection timeout for exporter (if set). + ConnectionTimeout string `json:"connection_timeout,omitempty"` + // custom labels - CustomLabels *ChangeAgentParamsBodyNodeExporterCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyPostgresExporterCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyNodeExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyPostgresExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body node exporter -func (o *ChangeAgentParamsBodyNodeExporter) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body postgres exporter +func (o *ChangeAgentParamsBodyPostgresExporter) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -8380,7 +9188,7 @@ func (o *ChangeAgentParamsBodyNodeExporter) Validate(formats strfmt.Registry) er return nil } -var changeAgentParamsBodyNodeExporterTypeLogLevelPropEnum []any +var changeAgentParamsBodyPostgresExporterTypeLogLevelPropEnum []any func init() { var res []string @@ -8388,53 +9196,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyNodeExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyNodeExporterTypeLogLevelPropEnum, v) + changeAgentParamsBodyPostgresExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyPostgresExporterTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyNodeExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyNodeExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyNodeExporterTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyPostgresExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyPostgresExporterTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyNodeExporter) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyPostgresExporter) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"node_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"postgres_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyNodeExporter) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyPostgresExporter) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -8443,11 +9251,11 @@ func (o *ChangeAgentParamsBodyNodeExporter) validateCustomLabels(formats strfmt. if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "node_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "node_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "custom_labels") } return err @@ -8457,7 +9265,7 @@ func (o *ChangeAgentParamsBodyNodeExporter) validateCustomLabels(formats strfmt. return nil } -func (o *ChangeAgentParamsBodyNodeExporter) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyPostgresExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -8466,11 +9274,11 @@ func (o *ChangeAgentParamsBodyNodeExporter) validateMetricsResolutions(formats s if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "node_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "node_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "metrics_resolutions") } return err @@ -8480,8 +9288,8 @@ func (o *ChangeAgentParamsBodyNodeExporter) validateMetricsResolutions(formats s return nil } -// ContextValidate validate this change agent params body node exporter based on the context it is used -func (o *ChangeAgentParamsBodyNodeExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body postgres exporter based on the context it is used +func (o *ChangeAgentParamsBodyPostgresExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -8498,7 +9306,7 @@ func (o *ChangeAgentParamsBodyNodeExporter) ContextValidate(ctx context.Context, return nil } -func (o *ChangeAgentParamsBodyNodeExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -8508,11 +9316,11 @@ func (o *ChangeAgentParamsBodyNodeExporter) contextValidateCustomLabels(ctx cont if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "node_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "node_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "custom_labels") } return err @@ -8522,7 +9330,7 @@ func (o *ChangeAgentParamsBodyNodeExporter) contextValidateCustomLabels(ctx cont return nil } -func (o *ChangeAgentParamsBodyNodeExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -8532,11 +9340,11 @@ func (o *ChangeAgentParamsBodyNodeExporter) contextValidateMetricsResolutions(ct if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "node_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "node_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "metrics_resolutions") } return err @@ -8547,7 +9355,7 @@ func (o *ChangeAgentParamsBodyNodeExporter) contextValidateMetricsResolutions(ct } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNodeExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyPostgresExporter) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -8555,8 +9363,8 @@ func (o *ChangeAgentParamsBodyNodeExporter) MarshalBinary() ([]byte, error) { } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNodeExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyNodeExporter +func (o *ChangeAgentParamsBodyPostgresExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyPostgresExporter if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -8565,26 +9373,26 @@ func (o *ChangeAgentParamsBodyNodeExporter) UnmarshalBinary(b []byte) error { } /* -ChangeAgentParamsBodyNodeExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyNodeExporterCustomLabels +ChangeAgentParamsBodyPostgresExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyPostgresExporterCustomLabels */ -type ChangeAgentParamsBodyNodeExporterCustomLabels struct { +type ChangeAgentParamsBodyPostgresExporterCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body node exporter custom labels -func (o *ChangeAgentParamsBodyNodeExporterCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body postgres exporter custom labels +func (o *ChangeAgentParamsBodyPostgresExporterCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body node exporter custom labels based on context it is used -func (o *ChangeAgentParamsBodyNodeExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body postgres exporter custom labels based on context it is used +func (o *ChangeAgentParamsBodyPostgresExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNodeExporterCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyPostgresExporterCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -8592,8 +9400,8 @@ func (o *ChangeAgentParamsBodyNodeExporterCustomLabels) MarshalBinary() ([]byte, } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNodeExporterCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyNodeExporterCustomLabels +func (o *ChangeAgentParamsBodyPostgresExporterCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyPostgresExporterCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -8602,10 +9410,10 @@ func (o *ChangeAgentParamsBodyNodeExporterCustomLabels) UnmarshalBinary(b []byte } /* -ChangeAgentParamsBodyNodeExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyNodeExporterMetricsResolutions +ChangeAgentParamsBodyPostgresExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyPostgresExporterMetricsResolutions */ -type ChangeAgentParamsBodyNodeExporterMetricsResolutions struct { +type ChangeAgentParamsBodyPostgresExporterMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -8616,55 +9424,18 @@ type ChangeAgentParamsBodyNodeExporterMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body node exporter metrics resolutions -func (o *ChangeAgentParamsBodyNodeExporterMetricsResolutions) Validate(formats strfmt.Registry) error { - return nil -} - -// ContextValidate validates this change agent params body node exporter metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyNodeExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { - return nil -} - -// MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNodeExporterMetricsResolutions) MarshalBinary() ([]byte, error) { - if o == nil { - return nil, nil - } - return swag.WriteJSON(o) -} - -// UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNodeExporterMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyNodeExporterMetricsResolutions - if err := swag.ReadJSON(b, &res); err != nil { - return err - } - *o = res - return nil -} - -/* -ChangeAgentParamsBodyNomadAgent change agent params body nomad agent -swagger:model ChangeAgentParamsBodyNomadAgent -*/ -type ChangeAgentParamsBodyNomadAgent struct { - // Enable this Agent. Agents are enabled by default when they get added. - Enable *bool `json:"enable,omitempty"` -} - -// Validate validates this change agent params body nomad agent -func (o *ChangeAgentParamsBodyNomadAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body postgres exporter metrics resolutions +func (o *ChangeAgentParamsBodyPostgresExporterMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body nomad agent based on context it is used -func (o *ChangeAgentParamsBodyNomadAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body postgres exporter metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyPostgresExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNomadAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyPostgresExporterMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -8672,8 +9443,8 @@ func (o *ChangeAgentParamsBodyNomadAgent) MarshalBinary() ([]byte, error) { } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyNomadAgent) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyNomadAgent +func (o *ChangeAgentParamsBodyPostgresExporterMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyPostgresExporterMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -8682,20 +9453,20 @@ func (o *ChangeAgentParamsBodyNomadAgent) UnmarshalBinary(b []byte) error { } /* -ChangeAgentParamsBodyPostgresExporter change agent params body postgres exporter -swagger:model ChangeAgentParamsBodyPostgresExporter +ChangeAgentParamsBodyProxysqlExporter change agent params body proxysql exporter +swagger:model ChangeAgentParamsBodyProxysqlExporter */ -type ChangeAgentParamsBodyPostgresExporter struct { +type ChangeAgentParamsBodyProxysqlExporter struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // PostgreSQL username for scraping metrics. + // ProxySQL username for scraping metrics. Username *string `json:"username,omitempty"` - // PostgreSQL password for scraping metrics. + // ProxySQL password for scraping metrics. Password *string `json:"password,omitempty"` // Use TLS for database connections. @@ -8704,21 +9475,9 @@ type ChangeAgentParamsBodyPostgresExporter struct { // Skip TLS certificate and hostname validation. TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` - // Skip connection check. - SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` - // List of collector names to disable in this exporter. DisableCollectors []string `json:"disable_collectors"` - // TLS CA certificate. - TLSCa *string `json:"tls_ca,omitempty"` - - // TLS Certificate. - TLSCert *string `json:"tls_cert,omitempty"` - - // TLS Certificate Key. - TLSKey *string `json:"tls_key,omitempty"` - // Custom password for exporter endpoint /metrics. AgentPassword *string `json:"agent_password,omitempty"` @@ -8728,27 +9487,24 @@ type ChangeAgentParamsBodyPostgresExporter struct { // 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"` - // Limit of databases for auto-discovery. - AutoDiscoveryLimit *int32 `json:"auto_discovery_limit,omitempty"` - // Optionally expose the exporter process on all public interfaces. ExposeExporter *bool `json:"expose_exporter,omitempty"` - // Maximum number of connections that exporter can open to the database instance. - MaxExporterConnections *int32 `json:"max_exporter_connections,omitempty"` - // Connection timeout for exporter (if set). ConnectionTimeout string `json:"connection_timeout,omitempty"` + // Skip connection check. + SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` + // custom labels - CustomLabels *ChangeAgentParamsBodyPostgresExporterCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyProxysqlExporterCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyPostgresExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body postgres exporter -func (o *ChangeAgentParamsBodyPostgresExporter) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body proxysql exporter +func (o *ChangeAgentParamsBodyProxysqlExporter) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -8769,7 +9525,7 @@ func (o *ChangeAgentParamsBodyPostgresExporter) Validate(formats strfmt.Registry return nil } -var changeAgentParamsBodyPostgresExporterTypeLogLevelPropEnum []any +var changeAgentParamsBodyProxysqlExporterTypeLogLevelPropEnum []any func init() { var res []string @@ -8777,53 +9533,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyPostgresExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyPostgresExporterTypeLogLevelPropEnum, v) + changeAgentParamsBodyProxysqlExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyProxysqlExporterTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyPostgresExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyPostgresExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyPostgresExporterTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyProxysqlExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyProxysqlExporterTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyPostgresExporter) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyProxysqlExporter) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"postgres_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"proxysql_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyPostgresExporter) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyProxysqlExporter) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -8832,11 +9588,11 @@ func (o *ChangeAgentParamsBodyPostgresExporter) validateCustomLabels(formats str if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "custom_labels") } return err @@ -8846,7 +9602,7 @@ func (o *ChangeAgentParamsBodyPostgresExporter) validateCustomLabels(formats str return nil } -func (o *ChangeAgentParamsBodyPostgresExporter) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyProxysqlExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -8855,11 +9611,11 @@ func (o *ChangeAgentParamsBodyPostgresExporter) validateMetricsResolutions(forma if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "metrics_resolutions") } return err @@ -8869,8 +9625,8 @@ func (o *ChangeAgentParamsBodyPostgresExporter) validateMetricsResolutions(forma return nil } -// ContextValidate validate this change agent params body postgres exporter based on the context it is used -func (o *ChangeAgentParamsBodyPostgresExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body proxysql exporter based on the context it is used +func (o *ChangeAgentParamsBodyProxysqlExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -8887,7 +9643,7 @@ func (o *ChangeAgentParamsBodyPostgresExporter) ContextValidate(ctx context.Cont return nil } -func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -8897,11 +9653,11 @@ func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateCustomLabels(ctx if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "custom_labels") } return err @@ -8911,7 +9667,7 @@ func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateCustomLabels(ctx return nil } -func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -8921,11 +9677,11 @@ func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateMetricsResolution if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "postgres_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "postgres_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "metrics_resolutions") } return err @@ -8936,7 +9692,7 @@ func (o *ChangeAgentParamsBodyPostgresExporter) contextValidateMetricsResolution } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyPostgresExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyProxysqlExporter) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -8944,8 +9700,8 @@ func (o *ChangeAgentParamsBodyPostgresExporter) MarshalBinary() ([]byte, error) } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyPostgresExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyPostgresExporter +func (o *ChangeAgentParamsBodyProxysqlExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyProxysqlExporter if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -8954,26 +9710,26 @@ func (o *ChangeAgentParamsBodyPostgresExporter) UnmarshalBinary(b []byte) error } /* -ChangeAgentParamsBodyPostgresExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyPostgresExporterCustomLabels +ChangeAgentParamsBodyProxysqlExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyProxysqlExporterCustomLabels */ -type ChangeAgentParamsBodyPostgresExporterCustomLabels struct { +type ChangeAgentParamsBodyProxysqlExporterCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body postgres exporter custom labels -func (o *ChangeAgentParamsBodyPostgresExporterCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body proxysql exporter custom labels +func (o *ChangeAgentParamsBodyProxysqlExporterCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body postgres exporter custom labels based on context it is used -func (o *ChangeAgentParamsBodyPostgresExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body proxysql exporter custom labels based on context it is used +func (o *ChangeAgentParamsBodyProxysqlExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyPostgresExporterCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyProxysqlExporterCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -8981,8 +9737,8 @@ func (o *ChangeAgentParamsBodyPostgresExporterCustomLabels) MarshalBinary() ([]b } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyPostgresExporterCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyPostgresExporterCustomLabels +func (o *ChangeAgentParamsBodyProxysqlExporterCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyProxysqlExporterCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -8991,10 +9747,10 @@ func (o *ChangeAgentParamsBodyPostgresExporterCustomLabels) UnmarshalBinary(b [] } /* -ChangeAgentParamsBodyPostgresExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyPostgresExporterMetricsResolutions +ChangeAgentParamsBodyProxysqlExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyProxysqlExporterMetricsResolutions */ -type ChangeAgentParamsBodyPostgresExporterMetricsResolutions struct { +type ChangeAgentParamsBodyProxysqlExporterMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -9005,18 +9761,18 @@ type ChangeAgentParamsBodyPostgresExporterMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body postgres exporter metrics resolutions -func (o *ChangeAgentParamsBodyPostgresExporterMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body proxysql exporter metrics resolutions +func (o *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body postgres exporter metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyPostgresExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body proxysql exporter metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyPostgresExporterMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -9024,8 +9780,8 @@ func (o *ChangeAgentParamsBodyPostgresExporterMetricsResolutions) MarshalBinary( } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyPostgresExporterMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyPostgresExporterMetricsResolutions +func (o *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyProxysqlExporterMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -9034,20 +9790,20 @@ func (o *ChangeAgentParamsBodyPostgresExporterMetricsResolutions) UnmarshalBinar } /* -ChangeAgentParamsBodyProxysqlExporter change agent params body proxysql exporter -swagger:model ChangeAgentParamsBodyProxysqlExporter +ChangeAgentParamsBodyQANMongodbMongologAgent change agent params body QAN mongodb mongolog agent +swagger:model ChangeAgentParamsBodyQANMongodbMongologAgent */ -type ChangeAgentParamsBodyProxysqlExporter struct { +type ChangeAgentParamsBodyQANMongodbMongologAgent struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // ProxySQL username for scraping metrics. + // MongoDB username for getting mongolog data. Username *string `json:"username,omitempty"` - // ProxySQL password for scraping metrics. + // MongoDB password for getting mongolog data. Password *string `json:"password,omitempty"` // Use TLS for database connections. @@ -9056,11 +9812,23 @@ type ChangeAgentParamsBodyProxysqlExporter struct { // Skip TLS certificate and hostname validation. TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` - // List of collector names to disable in this exporter. - DisableCollectors []string `json:"disable_collectors"` + // Client certificate and key. + TLSCertificateKey *string `json:"tls_certificate_key,omitempty"` + + // Password for decrypting tls_certificate_key. + TLSCertificateKeyFilePassword *string `json:"tls_certificate_key_file_password,omitempty"` + + // Certificate Authority certificate chain. + TLSCa *string `json:"tls_ca,omitempty"` + + // Limit query length in QAN (default: server-defined; -1: no limit). + MaxQueryLength *int32 `json:"max_query_length,omitempty"` - // Custom password for exporter endpoint /metrics. - AgentPassword *string `json:"agent_password,omitempty"` + // Authentication mechanism. + AuthenticationMechanism *string `json:"authentication_mechanism,omitempty"` + + // Authentication database. + AuthenticationDatabase *string `json:"authentication_database,omitempty"` // Log level for exporters // @@ -9068,24 +9836,18 @@ type ChangeAgentParamsBodyProxysqlExporter struct { // 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"` - // Optionally expose the exporter process on all public interfaces. - ExposeExporter *bool `json:"expose_exporter,omitempty"` - - // Connection timeout for exporter (if set). - ConnectionTimeout string `json:"connection_timeout,omitempty"` - // Skip connection check. SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` // custom labels - CustomLabels *ChangeAgentParamsBodyProxysqlExporterCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body proxysql exporter -func (o *ChangeAgentParamsBodyProxysqlExporter) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mongodb mongolog agent +func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -9106,7 +9868,7 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) Validate(formats strfmt.Registry return nil } -var changeAgentParamsBodyProxysqlExporterTypeLogLevelPropEnum []any +var changeAgentParamsBodyQanMongodbMongologAgentTypeLogLevelPropEnum []any func init() { var res []string @@ -9114,53 +9876,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyProxysqlExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyProxysqlExporterTypeLogLevelPropEnum, v) + changeAgentParamsBodyQanMongodbMongologAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanMongodbMongologAgentTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyProxysqlExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyProxysqlExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyProxysqlExporterTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanMongodbMongologAgentTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyProxysqlExporter) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"proxysql_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"qan_mongodb_mongolog_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyProxysqlExporter) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -9169,11 +9931,11 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) validateCustomLabels(formats str if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "custom_labels") } return err @@ -9183,7 +9945,7 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) validateCustomLabels(formats str return nil } -func (o *ChangeAgentParamsBodyProxysqlExporter) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -9192,11 +9954,11 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) validateMetricsResolutions(forma if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "metrics_resolutions") } return err @@ -9206,8 +9968,8 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) validateMetricsResolutions(forma return nil } -// ContextValidate validate this change agent params body proxysql exporter based on the context it is used -func (o *ChangeAgentParamsBodyProxysqlExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body QAN mongodb mongolog agent based on the context it is used +func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -9224,7 +9986,7 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) ContextValidate(ctx context.Cont return nil } -func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -9234,11 +9996,11 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateCustomLabels(ctx if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "custom_labels") } return err @@ -9248,7 +10010,7 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateCustomLabels(ctx return nil } -func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -9258,11 +10020,11 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateMetricsResolution if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "proxysql_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "proxysql_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "metrics_resolutions") } return err @@ -9273,7 +10035,7 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) contextValidateMetricsResolution } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyProxysqlExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -9281,8 +10043,8 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) MarshalBinary() ([]byte, error) } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyProxysqlExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyProxysqlExporter +func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbMongologAgent if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -9291,26 +10053,26 @@ func (o *ChangeAgentParamsBodyProxysqlExporter) UnmarshalBinary(b []byte) error } /* -ChangeAgentParamsBodyProxysqlExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyProxysqlExporterCustomLabels +ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels */ -type ChangeAgentParamsBodyProxysqlExporterCustomLabels struct { +type ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body proxysql exporter custom labels -func (o *ChangeAgentParamsBodyProxysqlExporterCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mongodb mongolog agent custom labels +func (o *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body proxysql exporter custom labels based on context it is used -func (o *ChangeAgentParamsBodyProxysqlExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN mongodb mongolog agent custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyProxysqlExporterCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -9318,8 +10080,8 @@ func (o *ChangeAgentParamsBodyProxysqlExporterCustomLabels) MarshalBinary() ([]b } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyProxysqlExporterCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyProxysqlExporterCustomLabels +func (o *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -9328,10 +10090,10 @@ func (o *ChangeAgentParamsBodyProxysqlExporterCustomLabels) UnmarshalBinary(b [] } /* -ChangeAgentParamsBodyProxysqlExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyProxysqlExporterMetricsResolutions +ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions */ -type ChangeAgentParamsBodyProxysqlExporterMetricsResolutions struct { +type ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -9342,18 +10104,18 @@ type ChangeAgentParamsBodyProxysqlExporterMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body proxysql exporter metrics resolutions -func (o *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mongodb mongolog agent metrics resolutions +func (o *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body proxysql exporter metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN mongodb mongolog agent metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -9361,8 +10123,8 @@ func (o *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions) MarshalBinary( } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyProxysqlExporterMetricsResolutions +func (o *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -9371,20 +10133,20 @@ func (o *ChangeAgentParamsBodyProxysqlExporterMetricsResolutions) UnmarshalBinar } /* -ChangeAgentParamsBodyQANMongodbMongologAgent change agent params body QAN mongodb mongolog agent -swagger:model ChangeAgentParamsBodyQANMongodbMongologAgent +ChangeAgentParamsBodyQANMongodbProfilerAgent change agent params body QAN mongodb profiler agent +swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgent */ -type ChangeAgentParamsBodyQANMongodbMongologAgent struct { +type ChangeAgentParamsBodyQANMongodbProfilerAgent struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // MongoDB username for getting mongolog data. + // MongoDB username for getting profile data. Username *string `json:"username,omitempty"` - // MongoDB password for getting mongolog data. + // MongoDB password for getting profile data. Password *string `json:"password,omitempty"` // Use TLS for database connections. @@ -9421,14 +10183,14 @@ type ChangeAgentParamsBodyQANMongodbMongologAgent struct { SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` // custom labels - CustomLabels *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body QAN mongodb mongolog agent -func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mongodb profiler agent +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -9449,7 +10211,7 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) Validate(formats strfmt.R return nil } -var changeAgentParamsBodyQanMongodbMongologAgentTypeLogLevelPropEnum []any +var changeAgentParamsBodyQanMongodbProfilerAgentTypeLogLevelPropEnum []any func init() { var res []string @@ -9457,53 +10219,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyQanMongodbMongologAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanMongodbMongologAgentTypeLogLevelPropEnum, v) + changeAgentParamsBodyQanMongodbProfilerAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanMongodbProfilerAgentTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyQANMongodbMongologAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanMongodbMongologAgentTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanMongodbProfilerAgentTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"qan_mongodb_mongolog_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"qan_mongodb_profiler_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -9512,11 +10274,11 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateCustomLabels(form if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "custom_labels") } return err @@ -9526,7 +10288,7 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateCustomLabels(form return nil } -func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -9535,11 +10297,11 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateMetricsResolution if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "metrics_resolutions") } return err @@ -9549,8 +10311,8 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) validateMetricsResolution return nil } -// ContextValidate validate this change agent params body QAN mongodb mongolog agent based on the context it is used -func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body QAN mongodb profiler agent based on the context it is used +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -9567,7 +10329,7 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) ContextValidate(ctx conte return nil } -func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -9577,11 +10339,11 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) contextValidateCustomLabe if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "custom_labels") } return err @@ -9591,7 +10353,7 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) contextValidateCustomLabe return nil } -func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -9601,11 +10363,11 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) contextValidateMetricsRes if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mongodb_mongolog_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "metrics_resolutions") } return err @@ -9616,7 +10378,7 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) contextValidateMetricsRes } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -9624,8 +10386,8 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) MarshalBinary() ([]byte, } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMongodbMongologAgent +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbProfilerAgent if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -9634,26 +10396,26 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgent) UnmarshalBinary(b []byte) } /* -ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels +ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels */ -type ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels struct { +type ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body QAN mongodb mongolog agent custom labels -func (o *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mongodb profiler agent custom labels +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN mongodb mongolog agent custom labels based on context it is used -func (o *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN mongodb profiler agent custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -9661,8 +10423,8 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels) MarshalBinary } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -9671,10 +10433,10 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgentCustomLabels) UnmarshalBina } /* -ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions +ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions */ -type ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions struct { +type ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -9685,18 +10447,18 @@ type ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body QAN mongodb mongolog agent metrics resolutions -func (o *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mongodb profiler agent metrics resolutions +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN mongodb mongolog agent metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN mongodb profiler agent metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -9704,8 +10466,8 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions) Marshal } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions +func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -9714,20 +10476,20 @@ func (o *ChangeAgentParamsBodyQANMongodbMongologAgentMetricsResolutions) Unmarsh } /* -ChangeAgentParamsBodyQANMongodbProfilerAgent change agent params body QAN mongodb profiler agent -swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgent +ChangeAgentParamsBodyQANMysqlPerfschemaAgent change agent params body QAN mysql perfschema agent +swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgent */ -type ChangeAgentParamsBodyQANMongodbProfilerAgent struct { +type ChangeAgentParamsBodyQANMysqlPerfschemaAgent struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // MongoDB username for getting profile data. + // MySQL username for getting performance data. Username *string `json:"username,omitempty"` - // MongoDB password for getting profile data. + // MySQL password for getting performance data. Password *string `json:"password,omitempty"` // Use TLS for database connections. @@ -9736,23 +10498,26 @@ type ChangeAgentParamsBodyQANMongodbProfilerAgent struct { // Skip TLS certificate and hostname validation. TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` - // Client certificate and key. - TLSCertificateKey *string `json:"tls_certificate_key,omitempty"` - - // Password for decrypting tls_certificate_key. - TLSCertificateKeyFilePassword *string `json:"tls_certificate_key_file_password,omitempty"` - // Certificate Authority certificate chain. TLSCa *string `json:"tls_ca,omitempty"` + // Client certificate. + TLSCert *string `json:"tls_cert,omitempty"` + + // Password for decrypting tls_cert. + TLSKey *string `json:"tls_key,omitempty"` + // Limit query length in QAN (default: server-defined; -1: no limit). MaxQueryLength *int32 `json:"max_query_length,omitempty"` - // Authentication mechanism. - AuthenticationMechanism *string `json:"authentication_mechanism,omitempty"` + // Disable query examples. + DisableQueryExamples *bool `json:"disable_query_examples,omitempty"` - // Authentication database. - AuthenticationDatabase *string `json:"authentication_database,omitempty"` + // Skip connection check. + SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` + + // Disable parsing comments from queries and showing them in QAN. + DisableCommentsParsing *bool `json:"disable_comments_parsing,omitempty"` // Log level for exporters // @@ -9760,18 +10525,15 @@ type ChangeAgentParamsBodyQANMongodbProfilerAgent struct { // 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"` - // Skip connection check. - SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` - // custom labels - CustomLabels *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body QAN mongodb profiler agent -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mysql perfschema agent +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -9792,7 +10554,7 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) Validate(formats strfmt.R return nil } -var changeAgentParamsBodyQanMongodbProfilerAgentTypeLogLevelPropEnum []any +var changeAgentParamsBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum []any func init() { var res []string @@ -9800,53 +10562,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyQanMongodbProfilerAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanMongodbProfilerAgentTypeLogLevelPropEnum, v) + changeAgentParamsBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyQANMongodbProfilerAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanMongodbProfilerAgentTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"qan_mongodb_profiler_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"qan_mysql_perfschema_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -9855,11 +10617,11 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateCustomLabels(form if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "custom_labels") } return err @@ -9869,7 +10631,7 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateCustomLabels(form return nil } -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -9878,11 +10640,11 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateMetricsResolution if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "metrics_resolutions") } return err @@ -9892,8 +10654,8 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) validateMetricsResolution return nil } -// ContextValidate validate this change agent params body QAN mongodb profiler agent based on the context it is used -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body QAN mysql perfschema agent based on the context it is used +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -9910,7 +10672,7 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) ContextValidate(ctx conte return nil } -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -9920,11 +10682,11 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateCustomLabe if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "custom_labels") } return err @@ -9934,7 +10696,7 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateCustomLabe return nil } -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -9944,11 +10706,11 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateMetricsRes if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mongodb_profiler_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "metrics_resolutions") } return err @@ -9959,7 +10721,7 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) contextValidateMetricsRes } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -9967,8 +10729,8 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) MarshalBinary() ([]byte, } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMongodbProfilerAgent +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlPerfschemaAgent if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -9977,26 +10739,26 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgent) UnmarshalBinary(b []byte) } /* -ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels +ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels */ -type ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels struct { +type ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body QAN mongodb profiler agent custom labels -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mysql perfschema agent custom labels +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN mongodb profiler agent custom labels based on context it is used -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN mysql perfschema agent custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -10004,8 +10766,8 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels) MarshalBinary } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -10014,10 +10776,10 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentCustomLabels) UnmarshalBina } /* -ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions +ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions */ -type ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions struct { +type ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -10028,18 +10790,18 @@ type ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body QAN mongodb profiler agent metrics resolutions -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mysql perfschema agent metrics resolutions +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN mongodb profiler agent metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN mysql perfschema agent metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -10047,8 +10809,8 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions) Marshal } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions +func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -10057,20 +10819,20 @@ func (o *ChangeAgentParamsBodyQANMongodbProfilerAgentMetricsResolutions) Unmarsh } /* -ChangeAgentParamsBodyQANMysqlPerfschemaAgent change agent params body QAN mysql perfschema agent -swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgent +ChangeAgentParamsBodyQANMysqlSlowlogAgent change agent params body QAN mysql slowlog agent +swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgent */ -type ChangeAgentParamsBodyQANMysqlPerfschemaAgent struct { +type ChangeAgentParamsBodyQANMysqlSlowlogAgent struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // MySQL username for getting performance data. + // MySQL username for getting slowlog data. Username *string `json:"username,omitempty"` - // MySQL password for getting performance data. + // MySQL password for getting slowlog data. Password *string `json:"password,omitempty"` // Use TLS for database connections. @@ -10094,6 +10856,9 @@ type ChangeAgentParamsBodyQANMysqlPerfschemaAgent struct { // Disable query examples. DisableQueryExamples *bool `json:"disable_query_examples,omitempty"` + // Rotate slowlog file at this size if > 0. + MaxSlowlogFileSize *string `json:"max_slowlog_file_size,omitempty"` + // Skip connection check. SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` @@ -10107,14 +10872,14 @@ type ChangeAgentParamsBodyQANMysqlPerfschemaAgent struct { LogLevel *string `json:"log_level,omitempty"` // custom labels - CustomLabels *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body QAN mysql perfschema agent -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mysql slowlog agent +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -10135,7 +10900,7 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) Validate(formats strfmt.R return nil } -var changeAgentParamsBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum []any +var changeAgentParamsBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum []any func init() { var res []string @@ -10143,53 +10908,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum, v) + changeAgentParamsBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyQANMysqlPerfschemaAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanMysqlPerfschemaAgentTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"qan_mysql_perfschema_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"qan_mysql_slowlog_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -10198,11 +10963,11 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateCustomLabels(form if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "custom_labels") } return err @@ -10212,7 +10977,7 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateCustomLabels(form return nil } -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -10221,11 +10986,11 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateMetricsResolution if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "metrics_resolutions") } return err @@ -10235,8 +11000,8 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) validateMetricsResolution return nil } -// ContextValidate validate this change agent params body QAN mysql perfschema agent based on the context it is used -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body QAN mysql slowlog agent based on the context it is used +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -10253,7 +11018,7 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) ContextValidate(ctx conte return nil } -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -10263,11 +11028,11 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateCustomLabe if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "custom_labels") } return err @@ -10277,7 +11042,7 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateCustomLabe return nil } -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -10287,11 +11052,11 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateMetricsRes if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mysql_perfschema_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "metrics_resolutions") } return err @@ -10302,7 +11067,7 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) contextValidateMetricsRes } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -10310,8 +11075,8 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) MarshalBinary() ([]byte, } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMysqlPerfschemaAgent +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlSlowlogAgent if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -10320,26 +11085,26 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgent) UnmarshalBinary(b []byte) } /* -ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels +ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels */ -type ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels struct { +type ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body QAN mysql perfschema agent custom labels -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mysql slowlog agent custom labels +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN mysql perfschema agent custom labels based on context it is used -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN mysql slowlog agent custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -10347,8 +11112,8 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels) MarshalBinary } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -10357,10 +11122,10 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentCustomLabels) UnmarshalBina } /* -ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions +ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions */ -type ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions struct { +type ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -10371,18 +11136,18 @@ type ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body QAN mysql perfschema agent metrics resolutions -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN mysql slowlog agent metrics resolutions +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN mysql perfschema agent metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN mysql slowlog agent metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -10390,8 +11155,8 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions) Marshal } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions +func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -10400,20 +11165,20 @@ func (o *ChangeAgentParamsBodyQANMysqlPerfschemaAgentMetricsResolutions) Unmarsh } /* -ChangeAgentParamsBodyQANMysqlSlowlogAgent change agent params body QAN mysql slowlog agent -swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgent +ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent change agent params body QAN postgresql pgstatements agent +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent */ -type ChangeAgentParamsBodyQANMysqlSlowlogAgent struct { +type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // MySQL username for getting slowlog data. + // PostgreSQL username for getting pg stat statements data. Username *string `json:"username,omitempty"` - // MySQL password for getting slowlog data. + // PostgreSQL password for getting pg stat statements data. Password *string `json:"password,omitempty"` // Use TLS for database connections. @@ -10422,29 +11187,20 @@ type ChangeAgentParamsBodyQANMysqlSlowlogAgent struct { // Skip TLS certificate and hostname validation. TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` - // Certificate Authority certificate chain. - TLSCa *string `json:"tls_ca,omitempty"` - - // Client certificate. - TLSCert *string `json:"tls_cert,omitempty"` - - // Password for decrypting tls_cert. - TLSKey *string `json:"tls_key,omitempty"` + // Disable parsing comments from queries and showing them in QAN. + DisableCommentsParsing *bool `json:"disable_comments_parsing,omitempty"` // Limit query length in QAN (default: server-defined; -1: no limit). MaxQueryLength *int32 `json:"max_query_length,omitempty"` - // Disable query examples. - DisableQueryExamples *bool `json:"disable_query_examples,omitempty"` - - // Rotate slowlog file at this size if > 0. - MaxSlowlogFileSize *string `json:"max_slowlog_file_size,omitempty"` + // TLS CA certificate. + TLSCa *string `json:"tls_ca,omitempty"` - // Skip connection check. - SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` + // TLS Certificate. + TLSCert *string `json:"tls_cert,omitempty"` - // Disable parsing comments from queries and showing them in QAN. - DisableCommentsParsing *bool `json:"disable_comments_parsing,omitempty"` + // TLS Certificate Key. + TLSKey *string `json:"tls_key,omitempty"` // Log level for exporters // @@ -10452,15 +11208,18 @@ type ChangeAgentParamsBodyQANMysqlSlowlogAgent struct { // 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"` + // Skip connection check. + SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` + // custom labels - CustomLabels *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body QAN mysql slowlog agent -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN postgresql pgstatements agent +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -10481,7 +11240,7 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) Validate(formats strfmt.Regi return nil } -var changeAgentParamsBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum []any +var changeAgentParamsBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum []any func init() { var res []string @@ -10489,53 +11248,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum, v) + changeAgentParamsBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyQANMysqlSlowlogAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanMysqlSlowlogAgentTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"qan_mysql_slowlog_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"qan_postgresql_pgstatements_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -10544,11 +11303,11 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateCustomLabels(formats if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "custom_labels") } return err @@ -10558,7 +11317,7 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateCustomLabels(formats return nil } -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -10567,11 +11326,11 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateMetricsResolutions(f if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "metrics_resolutions") } return err @@ -10581,8 +11340,8 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) validateMetricsResolutions(f return nil } -// ContextValidate validate this change agent params body QAN mysql slowlog agent based on the context it is used -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body QAN postgresql pgstatements agent based on the context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -10599,7 +11358,7 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) ContextValidate(ctx context. return nil } -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -10609,11 +11368,11 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateCustomLabels( if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "custom_labels") } return err @@ -10623,7 +11382,7 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateCustomLabels( return nil } -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -10633,11 +11392,11 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateMetricsResolu if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_mysql_slowlog_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "metrics_resolutions") } return err @@ -10648,7 +11407,7 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) contextValidateMetricsResolu } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -10656,8 +11415,8 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) MarshalBinary() ([]byte, err } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMysqlSlowlogAgent +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -10666,26 +11425,26 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgent) UnmarshalBinary(b []byte) er } /* -ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels +ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels */ -type ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels struct { +type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body QAN mysql slowlog agent custom labels -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN postgresql pgstatements agent custom labels +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN mysql slowlog agent custom labels based on context it is used -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN postgresql pgstatements agent custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -10693,8 +11452,8 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels) MarshalBinary() } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -10703,10 +11462,10 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentCustomLabels) UnmarshalBinary( } /* -ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions +ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions */ -type ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions struct { +type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -10717,18 +11476,18 @@ type ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions struct { Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body QAN mysql slowlog agent metrics resolutions -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN postgresql pgstatements agent metrics resolutions +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN mysql slowlog agent metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN postgresql pgstatements agent metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -10736,8 +11495,8 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions) MarshalBin } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -10746,20 +11505,20 @@ func (o *ChangeAgentParamsBodyQANMysqlSlowlogAgentMetricsResolutions) UnmarshalB } /* -ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent change agent params body QAN postgresql pgstatements agent -swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent +ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent change agent params body QAN postgresql pgstatmonitor agent +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent */ -type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent struct { +type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // PostgreSQL username for getting pg stat statements data. + // PostgreSQL username for getting pg stat monitor data. Username *string `json:"username,omitempty"` - // PostgreSQL password for getting pg stat statements data. + // PostgreSQL password for getting pg stat monitor data. Password *string `json:"password,omitempty"` // Use TLS for database connections. @@ -10768,12 +11527,15 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent struct { // Skip TLS certificate and hostname validation. TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` - // Disable parsing comments from queries and showing them in QAN. - DisableCommentsParsing *bool `json:"disable_comments_parsing,omitempty"` - // Limit query length in QAN (default: server-defined; -1: no limit). MaxQueryLength *int32 `json:"max_query_length,omitempty"` + // Disable query examples. + DisableQueryExamples *bool `json:"disable_query_examples,omitempty"` + + // Disable parsing comments from queries and showing them in QAN. + DisableCommentsParsing *bool `json:"disable_comments_parsing,omitempty"` + // TLS CA certificate. TLSCa *string `json:"tls_ca,omitempty"` @@ -10793,14 +11555,14 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent struct { SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` // custom labels - CustomLabels *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body QAN postgresql pgstatements agent -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN postgresql pgstatmonitor agent +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -10821,7 +11583,7 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) Validate(formats s return nil } -var changeAgentParamsBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum []any +var changeAgentParamsBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum []any func init() { var res []string @@ -10829,53 +11591,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum, v) + changeAgentParamsBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanPostgresqlPgstatementsAgentTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"qan_postgresql_pgstatements_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"qan_postgresql_pgstatmonitor_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -10884,11 +11646,11 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateCustomLabe if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "custom_labels") } return err @@ -10898,7 +11660,7 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateCustomLabe return nil } -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -10907,11 +11669,11 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateMetricsRes if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "metrics_resolutions") } return err @@ -10921,8 +11683,8 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) validateMetricsRes return nil } -// ContextValidate validate this change agent params body QAN postgresql pgstatements agent based on the context it is used -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body QAN postgresql pgstatmonitor agent based on the context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -10939,7 +11701,7 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) ContextValidate(ct return nil } -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -10949,11 +11711,11 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) contextValidateCus if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "custom_labels") } return err @@ -10963,7 +11725,7 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) contextValidateCus return nil } -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -10973,11 +11735,11 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) contextValidateMet if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_postgresql_pgstatements_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "metrics_resolutions") } return err @@ -10988,7 +11750,7 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) contextValidateMet } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -10996,8 +11758,8 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) MarshalBinary() ([ } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -11006,26 +11768,26 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgent) UnmarshalBinary(b } /* -ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels +ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels */ -type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels struct { +type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body QAN postgresql pgstatements agent custom labels -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN postgresql pgstatmonitor agent custom labels +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN postgresql pgstatements agent custom labels based on context it is used -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN postgresql pgstatmonitor agent custom labels based on context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -11033,8 +11795,8 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels) Marsha } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -11043,10 +11805,10 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentCustomLabels) Unmars } /* -ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions +ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions */ -type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions struct { +type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -11057,18 +11819,18 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions struc Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body QAN postgresql pgstatements agent metrics resolutions -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body QAN postgresql pgstatmonitor agent metrics resolutions +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN postgresql pgstatements agent metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body QAN postgresql pgstatmonitor agent metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -11076,8 +11838,8 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions) } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions +func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -11086,45 +11848,27 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatementsAgentMetricsResolutions) } /* -ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent change agent params body QAN postgresql pgstatmonitor agent -swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent +ChangeAgentParamsBodyRDSExporter change agent params body RDS exporter +swagger:model ChangeAgentParamsBodyRDSExporter */ -type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent struct { +type ChangeAgentParamsBodyRDSExporter struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` // Enables push metrics with vmagent. EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - // PostgreSQL username for getting pg stat monitor data. - Username *string `json:"username,omitempty"` - - // PostgreSQL password for getting pg stat monitor data. - Password *string `json:"password,omitempty"` - - // Use TLS for database connections. - TLS *bool `json:"tls,omitempty"` - - // Skip TLS certificate and hostname validation. - TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` - - // Limit query length in QAN (default: server-defined; -1: no limit). - MaxQueryLength *int32 `json:"max_query_length,omitempty"` - - // Disable query examples. - DisableQueryExamples *bool `json:"disable_query_examples,omitempty"` - - // Disable parsing comments from queries and showing them in QAN. - DisableCommentsParsing *bool `json:"disable_comments_parsing,omitempty"` + // AWS Access Key. + AWSAccessKey *string `json:"aws_access_key,omitempty"` - // TLS CA certificate. - TLSCa *string `json:"tls_ca,omitempty"` + // AWS Secret Key. + AWSSecretKey *string `json:"aws_secret_key,omitempty"` - // TLS Certificate. - TLSCert *string `json:"tls_cert,omitempty"` + // Disable basic metrics. + DisableBasicMetrics *bool `json:"disable_basic_metrics,omitempty"` - // TLS Certificate Key. - TLSKey *string `json:"tls_key,omitempty"` + // Disable enhanced metrics. + DisableEnhancedMetrics *bool `json:"disable_enhanced_metrics,omitempty"` // Log level for exporters // @@ -11132,18 +11876,15 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent struct { // 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"` - // Skip connection check. - SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` - // custom labels - CustomLabels *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyRDSExporterCustomLabels `json:"custom_labels,omitempty"` // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions `json:"metrics_resolutions,omitempty"` + MetricsResolutions *ChangeAgentParamsBodyRDSExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` } -// Validate validates this change agent params body QAN postgresql pgstatmonitor agent -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body RDS exporter +func (o *ChangeAgentParamsBodyRDSExporter) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -11164,7 +11905,7 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) Validate(formats return nil } -var changeAgentParamsBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum []any +var changeAgentParamsBodyRdsExporterTypeLogLevelPropEnum []any func init() { var res []string @@ -11172,53 +11913,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum, v) + changeAgentParamsBodyRdsExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyRdsExporterTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyQanPostgresqlPgstatmonitorAgentTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyRDSExporter) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyRdsExporterTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRDSExporter) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"qan_postgresql_pgstatmonitor_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"rds_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRDSExporter) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -11227,11 +11968,11 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateCustomLab if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "rds_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "rds_exporter" + "." + "custom_labels") } return err @@ -11241,7 +11982,7 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateCustomLab return nil } -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateMetricsResolutions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRDSExporter) validateMetricsResolutions(formats strfmt.Registry) error { if swag.IsZero(o.MetricsResolutions) { // not required return nil } @@ -11250,11 +11991,11 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateMetricsRe if err := o.MetricsResolutions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "rds_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "rds_exporter" + "." + "metrics_resolutions") } return err @@ -11264,8 +12005,8 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) validateMetricsRe return nil } -// ContextValidate validate this change agent params body QAN postgresql pgstatmonitor agent based on the context it is used -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body RDS exporter based on the context it is used +func (o *ChangeAgentParamsBodyRDSExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -11282,7 +12023,7 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) ContextValidate(c return nil } -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRDSExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -11292,11 +12033,11 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) contextValidateCu if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "rds_exporter" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "rds_exporter" + "." + "custom_labels") } return err @@ -11306,7 +12047,7 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) contextValidateCu return nil } -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRDSExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { if o.MetricsResolutions != nil { if swag.IsZero(o.MetricsResolutions) { // not required @@ -11316,11 +12057,11 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) contextValidateMe if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "rds_exporter" + "." + "metrics_resolutions") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "qan_postgresql_pgstatmonitor_agent" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "rds_exporter" + "." + "metrics_resolutions") } return err @@ -11331,7 +12072,7 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) contextValidateMe } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyRDSExporter) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -11339,8 +12080,8 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) MarshalBinary() ( } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent +func (o *ChangeAgentParamsBodyRDSExporter) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRDSExporter if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -11349,26 +12090,26 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgent) UnmarshalBinary(b } /* -ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels +ChangeAgentParamsBodyRDSExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyRDSExporterCustomLabels */ -type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels struct { +type ChangeAgentParamsBodyRDSExporterCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body QAN postgresql pgstatmonitor agent custom labels -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body RDS exporter custom labels +func (o *ChangeAgentParamsBodyRDSExporterCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN postgresql pgstatmonitor agent custom labels based on context it is used -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body RDS exporter custom labels based on context it is used +func (o *ChangeAgentParamsBodyRDSExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyRDSExporterCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -11376,8 +12117,8 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels) Marsh } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels +func (o *ChangeAgentParamsBodyRDSExporterCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRDSExporterCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -11386,10 +12127,10 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentCustomLabels) Unmar } /* -ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions +ChangeAgentParamsBodyRDSExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. +swagger:model ChangeAgentParamsBodyRDSExporterMetricsResolutions */ -type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions struct { +type ChangeAgentParamsBodyRDSExporterMetricsResolutions struct { // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. Hr string `json:"hr,omitempty"` @@ -11400,18 +12141,18 @@ type ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions stru Lr string `json:"lr,omitempty"` } -// Validate validates this change agent params body QAN postgresql pgstatmonitor agent metrics resolutions -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body RDS exporter metrics resolutions +func (o *ChangeAgentParamsBodyRDSExporterMetricsResolutions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body QAN postgresql pgstatmonitor agent metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body RDS exporter metrics resolutions based on context it is used +func (o *ChangeAgentParamsBodyRDSExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyRDSExporterMetricsResolutions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -11419,8 +12160,8 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions) } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions +func (o *ChangeAgentParamsBodyRDSExporterMetricsResolutions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRDSExporterMetricsResolutions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -11428,28 +12169,13 @@ func (o *ChangeAgentParamsBodyQANPostgresqlPgstatmonitorAgentMetricsResolutions) return nil } -/* -ChangeAgentParamsBodyRDSExporter change agent params body RDS exporter -swagger:model ChangeAgentParamsBodyRDSExporter -*/ -type ChangeAgentParamsBodyRDSExporter struct { - // Enable this Agent. Agents are enabled by default when they get added. - Enable *bool `json:"enable,omitempty"` - - // Enables push metrics with vmagent. - EnablePushMetrics *bool `json:"enable_push_metrics,omitempty"` - - // AWS Access Key. - AWSAccessKey *string `json:"aws_access_key,omitempty"` - - // AWS Secret Key. - AWSSecretKey *string `json:"aws_secret_key,omitempty"` - - // Disable basic metrics. - DisableBasicMetrics *bool `json:"disable_basic_metrics,omitempty"` - - // Disable enhanced metrics. - DisableEnhancedMetrics *bool `json:"disable_enhanced_metrics,omitempty"` +/* +ChangeAgentParamsBodyRtaMongodbAgent change agent params body rta mongodb agent +swagger:model ChangeAgentParamsBodyRtaMongodbAgent +*/ +type ChangeAgentParamsBodyRtaMongodbAgent struct { + // Enable this Agent. Agents are enabled by default when they get added. + Enable *bool `json:"enable,omitempty"` // Log level for exporters // @@ -11457,15 +12183,42 @@ type ChangeAgentParamsBodyRDSExporter struct { // 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"` + // MongoDB username for getting profile data. + Username *string `json:"username,omitempty"` + + // MongoDB password for getting profile data. + Password *string `json:"password,omitempty"` + + // Use TLS for database connections. + TLS *bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` + + // Client certificate and key. + TLSCertificateKey *string `json:"tls_certificate_key,omitempty"` + + // Password for decrypting tls_certificate_key. + TLSCertificateKeyFilePassword *string `json:"tls_certificate_key_file_password,omitempty"` + + // Certificate Authority certificate chain. + TLSCa *string `json:"tls_ca,omitempty"` + + // Authentication mechanism. + AuthenticationMechanism *string `json:"authentication_mechanism,omitempty"` + + // Skip connection check. + SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` + // custom labels - CustomLabels *ChangeAgentParamsBodyRDSExporterCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels `json:"custom_labels,omitempty"` - // metrics resolutions - MetricsResolutions *ChangeAgentParamsBodyRDSExporterMetricsResolutions `json:"metrics_resolutions,omitempty"` + // rta options + RtaOptions *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions `json:"rta_options,omitempty"` } -// Validate validates this change agent params body RDS exporter -func (o *ChangeAgentParamsBodyRDSExporter) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body rta mongodb agent +func (o *ChangeAgentParamsBodyRtaMongodbAgent) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -11476,7 +12229,7 @@ func (o *ChangeAgentParamsBodyRDSExporter) Validate(formats strfmt.Registry) err res = append(res, err) } - if err := o.validateMetricsResolutions(formats); err != nil { + if err := o.validateRtaOptions(formats); err != nil { res = append(res, err) } @@ -11486,7 +12239,7 @@ func (o *ChangeAgentParamsBodyRDSExporter) Validate(formats strfmt.Registry) err return nil } -var changeAgentParamsBodyRdsExporterTypeLogLevelPropEnum []any +var changeAgentParamsBodyRtaMongodbAgentTypeLogLevelPropEnum []any func init() { var res []string @@ -11494,53 +12247,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyRdsExporterTypeLogLevelPropEnum = append(changeAgentParamsBodyRdsExporterTypeLogLevelPropEnum, v) + changeAgentParamsBodyRtaMongodbAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyRtaMongodbAgentTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyRDSExporterLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyRDSExporter) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyRdsExporterTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyRtaMongodbAgentTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyRDSExporter) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"rds_exporter"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"rta_mongodb_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyRDSExporter) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -11549,11 +12302,11 @@ func (o *ChangeAgentParamsBodyRDSExporter) validateCustomLabels(formats strfmt.R if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "rds_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "rds_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "custom_labels") } return err @@ -11563,20 +12316,20 @@ func (o *ChangeAgentParamsBodyRDSExporter) validateCustomLabels(formats strfmt.R return nil } -func (o *ChangeAgentParamsBodyRDSExporter) validateMetricsResolutions(formats strfmt.Registry) error { - if swag.IsZero(o.MetricsResolutions) { // not required +func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateRtaOptions(formats strfmt.Registry) error { + if swag.IsZero(o.RtaOptions) { // not required return nil } - if o.MetricsResolutions != nil { - if err := o.MetricsResolutions.Validate(formats); err != nil { + if o.RtaOptions != nil { + if err := o.RtaOptions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "rds_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "rta_options") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "rds_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "rta_options") } return err @@ -11586,15 +12339,15 @@ func (o *ChangeAgentParamsBodyRDSExporter) validateMetricsResolutions(formats st return nil } -// ContextValidate validate this change agent params body RDS exporter based on the context it is used -func (o *ChangeAgentParamsBodyRDSExporter) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body rta mongodb agent based on the context it is used +func (o *ChangeAgentParamsBodyRtaMongodbAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { res = append(res, err) } - if err := o.contextValidateMetricsResolutions(ctx, formats); err != nil { + if err := o.contextValidateRtaOptions(ctx, formats); err != nil { res = append(res, err) } @@ -11604,7 +12357,7 @@ func (o *ChangeAgentParamsBodyRDSExporter) ContextValidate(ctx context.Context, return nil } -func (o *ChangeAgentParamsBodyRDSExporter) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRtaMongodbAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -11614,11 +12367,11 @@ func (o *ChangeAgentParamsBodyRDSExporter) contextValidateCustomLabels(ctx conte if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "rds_exporter" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "rds_exporter" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "custom_labels") } return err @@ -11628,21 +12381,21 @@ func (o *ChangeAgentParamsBodyRDSExporter) contextValidateCustomLabels(ctx conte return nil } -func (o *ChangeAgentParamsBodyRDSExporter) contextValidateMetricsResolutions(ctx context.Context, formats strfmt.Registry) error { - if o.MetricsResolutions != nil { +func (o *ChangeAgentParamsBodyRtaMongodbAgent) contextValidateRtaOptions(ctx context.Context, formats strfmt.Registry) error { + if o.RtaOptions != nil { - if swag.IsZero(o.MetricsResolutions) { // not required + if swag.IsZero(o.RtaOptions) { // not required return nil } - if err := o.MetricsResolutions.ContextValidate(ctx, formats); err != nil { + if err := o.RtaOptions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "rds_exporter" + "." + "metrics_resolutions") + return ve.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "rta_options") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "rds_exporter" + "." + "metrics_resolutions") + return ce.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "rta_options") } return err @@ -11653,7 +12406,7 @@ func (o *ChangeAgentParamsBodyRDSExporter) contextValidateMetricsResolutions(ctx } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRDSExporter) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyRtaMongodbAgent) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -11661,8 +12414,8 @@ func (o *ChangeAgentParamsBodyRDSExporter) MarshalBinary() ([]byte, error) { } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRDSExporter) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyRDSExporter +func (o *ChangeAgentParamsBodyRtaMongodbAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRtaMongodbAgent if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -11671,26 +12424,26 @@ func (o *ChangeAgentParamsBodyRDSExporter) UnmarshalBinary(b []byte) error { } /* -ChangeAgentParamsBodyRDSExporterCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyRDSExporterCustomLabels +ChangeAgentParamsBodyRtaMongodbAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyRtaMongodbAgentCustomLabels */ -type ChangeAgentParamsBodyRDSExporterCustomLabels struct { +type ChangeAgentParamsBodyRtaMongodbAgentCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body RDS exporter custom labels -func (o *ChangeAgentParamsBodyRDSExporterCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body rta mongodb agent custom labels +func (o *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body RDS exporter custom labels based on context it is used -func (o *ChangeAgentParamsBodyRDSExporterCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body rta mongodb agent custom labels based on context it is used +func (o *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRDSExporterCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -11698,8 +12451,8 @@ func (o *ChangeAgentParamsBodyRDSExporterCustomLabels) MarshalBinary() ([]byte, } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRDSExporterCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyRDSExporterCustomLabels +func (o *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRtaMongodbAgentCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -11708,32 +12461,26 @@ func (o *ChangeAgentParamsBodyRDSExporterCustomLabels) UnmarshalBinary(b []byte) } /* -ChangeAgentParamsBodyRDSExporterMetricsResolutions MetricsResolutions represents Prometheus exporters metrics resolutions. -swagger:model ChangeAgentParamsBodyRDSExporterMetricsResolutions +ChangeAgentParamsBodyRtaMongodbAgentRtaOptions RTAOptions holds Real-Time Query Analytics agent options. +swagger:model ChangeAgentParamsBodyRtaMongodbAgentRtaOptions */ -type ChangeAgentParamsBodyRDSExporterMetricsResolutions struct { - // High resolution. In JSON should be represented as a string with number of seconds with `s` suffix. - Hr string `json:"hr,omitempty"` - - // Medium resolution. In JSON should be represented as a string with number of seconds with `s` suffix. - Mr string `json:"mr,omitempty"` - - // Low resolution. In JSON should be represented as a string with number of seconds with `s` suffix. - Lr string `json:"lr,omitempty"` +type ChangeAgentParamsBodyRtaMongodbAgentRtaOptions struct { + // Query collect interval (default 2s is set by server). + CollectInterval string `json:"collect_interval,omitempty"` } -// Validate validates this change agent params body RDS exporter metrics resolutions -func (o *ChangeAgentParamsBodyRDSExporterMetricsResolutions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body rta mongodb agent rta options +func (o *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body RDS exporter metrics resolutions based on context it is used -func (o *ChangeAgentParamsBodyRDSExporterMetricsResolutions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body rta mongodb agent rta options based on context it is used +func (o *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRDSExporterMetricsResolutions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -11741,8 +12488,8 @@ func (o *ChangeAgentParamsBodyRDSExporterMetricsResolutions) MarshalBinary() ([] } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRDSExporterMetricsResolutions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyRDSExporterMetricsResolutions +func (o *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRtaMongodbAgentRtaOptions if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -11751,10 +12498,10 @@ func (o *ChangeAgentParamsBodyRDSExporterMetricsResolutions) UnmarshalBinary(b [ } /* -ChangeAgentParamsBodyRtaMongodbAgent change agent params body rta mongodb agent -swagger:model ChangeAgentParamsBodyRtaMongodbAgent +ChangeAgentParamsBodyRtaMysqlAgent change agent params body rta mysql agent +swagger:model ChangeAgentParamsBodyRtaMysqlAgent */ -type ChangeAgentParamsBodyRtaMongodbAgent struct { +type ChangeAgentParamsBodyRtaMysqlAgent struct { // Enable this Agent. Agents are enabled by default when they get added. Enable *bool `json:"enable,omitempty"` @@ -11764,10 +12511,10 @@ type ChangeAgentParamsBodyRtaMongodbAgent struct { // 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"` - // MongoDB username for getting profile data. + // MySQL username for getting queries data. Username *string `json:"username,omitempty"` - // MongoDB password for getting profile data. + // MySQL password for getting queries data. Password *string `json:"password,omitempty"` // Use TLS for database connections. @@ -11776,30 +12523,27 @@ type ChangeAgentParamsBodyRtaMongodbAgent struct { // Skip TLS certificate and hostname validation. TLSSkipVerify *bool `json:"tls_skip_verify,omitempty"` - // Client certificate and key. - TLSCertificateKey *string `json:"tls_certificate_key,omitempty"` - - // Password for decrypting tls_certificate_key. - TLSCertificateKeyFilePassword *string `json:"tls_certificate_key_file_password,omitempty"` - // Certificate Authority certificate chain. TLSCa *string `json:"tls_ca,omitempty"` - // Authentication mechanism. - AuthenticationMechanism *string `json:"authentication_mechanism,omitempty"` + // Client certificate. + TLSCert *string `json:"tls_cert,omitempty"` + + // Client key. + TLSKey *string `json:"tls_key,omitempty"` // Skip connection check. SkipConnectionCheck *bool `json:"skip_connection_check,omitempty"` // custom labels - CustomLabels *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels `json:"custom_labels,omitempty"` + CustomLabels *ChangeAgentParamsBodyRtaMysqlAgentCustomLabels `json:"custom_labels,omitempty"` // rta options - RtaOptions *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions `json:"rta_options,omitempty"` + RtaOptions *ChangeAgentParamsBodyRtaMysqlAgentRtaOptions `json:"rta_options,omitempty"` } -// Validate validates this change agent params body rta mongodb agent -func (o *ChangeAgentParamsBodyRtaMongodbAgent) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body rta mysql agent +func (o *ChangeAgentParamsBodyRtaMysqlAgent) Validate(formats strfmt.Registry) error { var res []error if err := o.validateLogLevel(formats); err != nil { @@ -11820,7 +12564,7 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) Validate(formats strfmt.Registry) return nil } -var changeAgentParamsBodyRtaMongodbAgentTypeLogLevelPropEnum []any +var changeAgentParamsBodyRtaMysqlAgentTypeLogLevelPropEnum []any func init() { var res []string @@ -11828,53 +12572,53 @@ func init() { panic(err) } for _, v := range res { - changeAgentParamsBodyRtaMongodbAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyRtaMongodbAgentTypeLogLevelPropEnum, v) + changeAgentParamsBodyRtaMysqlAgentTypeLogLevelPropEnum = append(changeAgentParamsBodyRtaMysqlAgentTypeLogLevelPropEnum, v) } } const ( - // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" - ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + // ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" - // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" - ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + // ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" - // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" - ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + // ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" - // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" - ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + // ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" - // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" - ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + // ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" - // ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" - ChangeAgentParamsBodyRtaMongodbAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" + // ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ChangeAgentParamsBodyRtaMysqlAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" ) // prop value enum -func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateLogLevelEnum(path, location string, value string) error { - if err := validate.EnumCase(path, location, value, changeAgentParamsBodyRtaMongodbAgentTypeLogLevelPropEnum, true); err != nil { +func (o *ChangeAgentParamsBodyRtaMysqlAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, changeAgentParamsBodyRtaMysqlAgentTypeLogLevelPropEnum, true); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateLogLevel(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRtaMysqlAgent) validateLogLevel(formats strfmt.Registry) error { if swag.IsZero(o.LogLevel) { // not required return nil } // value enum - if err := o.validateLogLevelEnum("body"+"."+"rta_mongodb_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + if err := o.validateLogLevelEnum("body"+"."+"rta_mysql_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { return err } return nil } -func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateCustomLabels(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRtaMysqlAgent) validateCustomLabels(formats strfmt.Registry) error { if swag.IsZero(o.CustomLabels) { // not required return nil } @@ -11883,11 +12627,11 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateCustomLabels(formats strf if err := o.CustomLabels.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "rta_mysql_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "rta_mysql_agent" + "." + "custom_labels") } return err @@ -11897,7 +12641,7 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateCustomLabels(formats strf return nil } -func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateRtaOptions(formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRtaMysqlAgent) validateRtaOptions(formats strfmt.Registry) error { if swag.IsZero(o.RtaOptions) { // not required return nil } @@ -11906,11 +12650,11 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateRtaOptions(formats strfmt if err := o.RtaOptions.Validate(formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "rta_options") + return ve.ValidateName("body" + "." + "rta_mysql_agent" + "." + "rta_options") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "rta_options") + return ce.ValidateName("body" + "." + "rta_mysql_agent" + "." + "rta_options") } return err @@ -11920,8 +12664,8 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) validateRtaOptions(formats strfmt return nil } -// ContextValidate validate this change agent params body rta mongodb agent based on the context it is used -func (o *ChangeAgentParamsBodyRtaMongodbAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validate this change agent params body rta mysql agent based on the context it is used +func (o *ChangeAgentParamsBodyRtaMysqlAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error if err := o.contextValidateCustomLabels(ctx, formats); err != nil { @@ -11938,7 +12682,7 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) ContextValidate(ctx context.Conte return nil } -func (o *ChangeAgentParamsBodyRtaMongodbAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRtaMysqlAgent) contextValidateCustomLabels(ctx context.Context, formats strfmt.Registry) error { if o.CustomLabels != nil { if swag.IsZero(o.CustomLabels) { // not required @@ -11948,11 +12692,11 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) contextValidateCustomLabels(ctx c if err := o.CustomLabels.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "custom_labels") + return ve.ValidateName("body" + "." + "rta_mysql_agent" + "." + "custom_labels") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "custom_labels") + return ce.ValidateName("body" + "." + "rta_mysql_agent" + "." + "custom_labels") } return err @@ -11962,7 +12706,7 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) contextValidateCustomLabels(ctx c return nil } -func (o *ChangeAgentParamsBodyRtaMongodbAgent) contextValidateRtaOptions(ctx context.Context, formats strfmt.Registry) error { +func (o *ChangeAgentParamsBodyRtaMysqlAgent) contextValidateRtaOptions(ctx context.Context, formats strfmt.Registry) error { if o.RtaOptions != nil { if swag.IsZero(o.RtaOptions) { // not required @@ -11972,11 +12716,11 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) contextValidateRtaOptions(ctx con if err := o.RtaOptions.ContextValidate(ctx, formats); err != nil { ve := new(errors.Validation) if stderrors.As(err, &ve) { - return ve.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "rta_options") + return ve.ValidateName("body" + "." + "rta_mysql_agent" + "." + "rta_options") } ce := new(errors.CompositeError) if stderrors.As(err, &ce) { - return ce.ValidateName("body" + "." + "rta_mongodb_agent" + "." + "rta_options") + return ce.ValidateName("body" + "." + "rta_mysql_agent" + "." + "rta_options") } return err @@ -11987,7 +12731,7 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) contextValidateRtaOptions(ctx con } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRtaMongodbAgent) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyRtaMysqlAgent) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -11995,8 +12739,8 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) MarshalBinary() ([]byte, error) { } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRtaMongodbAgent) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyRtaMongodbAgent +func (o *ChangeAgentParamsBodyRtaMysqlAgent) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRtaMysqlAgent if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -12005,26 +12749,26 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgent) UnmarshalBinary(b []byte) error { } /* -ChangeAgentParamsBodyRtaMongodbAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. -swagger:model ChangeAgentParamsBodyRtaMongodbAgentCustomLabels +ChangeAgentParamsBodyRtaMysqlAgentCustomLabels A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value. +swagger:model ChangeAgentParamsBodyRtaMysqlAgentCustomLabels */ -type ChangeAgentParamsBodyRtaMongodbAgentCustomLabels struct { +type ChangeAgentParamsBodyRtaMysqlAgentCustomLabels struct { // values Values map[string]string `json:"values,omitempty"` } -// Validate validates this change agent params body rta mongodb agent custom labels -func (o *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body rta mysql agent custom labels +func (o *ChangeAgentParamsBodyRtaMysqlAgentCustomLabels) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body rta mongodb agent custom labels based on context it is used -func (o *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body rta mysql agent custom labels based on context it is used +func (o *ChangeAgentParamsBodyRtaMysqlAgentCustomLabels) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyRtaMysqlAgentCustomLabels) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -12032,8 +12776,8 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels) MarshalBinary() ([]by } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyRtaMongodbAgentCustomLabels +func (o *ChangeAgentParamsBodyRtaMysqlAgentCustomLabels) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRtaMysqlAgentCustomLabels if err := swag.ReadJSON(b, &res); err != nil { return err } @@ -12042,26 +12786,26 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgentCustomLabels) UnmarshalBinary(b []b } /* -ChangeAgentParamsBodyRtaMongodbAgentRtaOptions RTAOptions holds Real-Time Query Analytics agent options. -swagger:model ChangeAgentParamsBodyRtaMongodbAgentRtaOptions +ChangeAgentParamsBodyRtaMysqlAgentRtaOptions RTAOptions holds Real-Time Query Analytics agent options. +swagger:model ChangeAgentParamsBodyRtaMysqlAgentRtaOptions */ -type ChangeAgentParamsBodyRtaMongodbAgentRtaOptions struct { +type ChangeAgentParamsBodyRtaMysqlAgentRtaOptions struct { // Query collect interval (default 2s is set by server). CollectInterval string `json:"collect_interval,omitempty"` } -// Validate validates this change agent params body rta mongodb agent rta options -func (o *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions) Validate(formats strfmt.Registry) error { +// Validate validates this change agent params body rta mysql agent rta options +func (o *ChangeAgentParamsBodyRtaMysqlAgentRtaOptions) Validate(formats strfmt.Registry) error { return nil } -// ContextValidate validates this change agent params body rta mongodb agent rta options based on context it is used -func (o *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { +// ContextValidate validates this change agent params body rta mysql agent rta options based on context it is used +func (o *ChangeAgentParamsBodyRtaMysqlAgentRtaOptions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil } // MarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions) MarshalBinary() ([]byte, error) { +func (o *ChangeAgentParamsBodyRtaMysqlAgentRtaOptions) MarshalBinary() ([]byte, error) { if o == nil { return nil, nil } @@ -12069,8 +12813,8 @@ func (o *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions) MarshalBinary() ([]byte } // UnmarshalBinary interface implementation -func (o *ChangeAgentParamsBodyRtaMongodbAgentRtaOptions) UnmarshalBinary(b []byte) error { - var res ChangeAgentParamsBodyRtaMongodbAgentRtaOptions +func (o *ChangeAgentParamsBodyRtaMysqlAgentRtaOptions) UnmarshalBinary(b []byte) error { + var res ChangeAgentParamsBodyRtaMysqlAgentRtaOptions if err := swag.ReadJSON(b, &res); err != nil { return err } 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 69e1aa19c50..db3318be396 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 @@ -469,6 +469,9 @@ type GetAgentOKBody struct { // rta mongodb agent RtaMongodbAgent *GetAgentOKBodyRtaMongodbAgent `json:"rta_mongodb_agent,omitempty"` + // rta mysql agent + RtaMysqlAgent *GetAgentOKBodyRtaMysqlAgent `json:"rta_mysql_agent,omitempty"` + // valkey exporter ValkeyExporter *GetAgentOKBodyValkeyExporter `json:"valkey_exporter,omitempty"` @@ -548,6 +551,10 @@ func (o *GetAgentOKBody) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := o.validateRtaMysqlAgent(formats); err != nil { + res = append(res, err) + } + if err := o.validateValkeyExporter(formats); err != nil { res = append(res, err) } @@ -953,6 +960,29 @@ func (o *GetAgentOKBody) validateRtaMongodbAgent(formats strfmt.Registry) error return nil } +func (o *GetAgentOKBody) validateRtaMysqlAgent(formats strfmt.Registry) error { + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + if o.RtaMysqlAgent != nil { + if err := o.RtaMysqlAgent.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("getAgentOk" + "." + "rta_mysql_agent") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("getAgentOk" + "." + "rta_mysql_agent") + } + + return err + } + } + + return nil +} + func (o *GetAgentOKBody) validateValkeyExporter(formats strfmt.Registry) error { if swag.IsZero(o.ValkeyExporter) { // not required return nil @@ -1071,6 +1101,10 @@ func (o *GetAgentOKBody) ContextValidate(ctx context.Context, formats strfmt.Reg res = append(res, err) } + if err := o.contextValidateRtaMysqlAgent(ctx, formats); err != nil { + res = append(res, err) + } + if err := o.contextValidateValkeyExporter(ctx, formats); err != nil { res = append(res, err) } @@ -1493,6 +1527,30 @@ func (o *GetAgentOKBody) contextValidateRtaMongodbAgent(ctx context.Context, for return nil } +func (o *GetAgentOKBody) contextValidateRtaMysqlAgent(ctx context.Context, formats strfmt.Registry) error { + if o.RtaMysqlAgent != nil { + + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + if err := o.RtaMysqlAgent.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("getAgentOk" + "." + "rta_mysql_agent") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("getAgentOk" + "." + "rta_mysql_agent") + } + + return err + } + } + + return nil +} + func (o *GetAgentOKBody) contextValidateValkeyExporter(ctx context.Context, formats strfmt.Registry) error { if o.ValkeyExporter != nil { @@ -5901,6 +5959,309 @@ func (o *GetAgentOKBodyRtaMongodbAgentRtaOptions) UnmarshalBinary(b []byte) erro return nil } +/* +GetAgentOKBodyRtaMysqlAgent RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server. +swagger:model GetAgentOKBodyRtaMysqlAgent +*/ +type GetAgentOKBodyRtaMysqlAgent struct { + // Unique agent identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // MySQL username for getting the currently running queries. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent has been stopped or disabled. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] + Status *string `json:"status,omitempty"` + + // Log level for exporters + // + // - 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"` + + // rta options + RtaOptions *GetAgentOKBodyRtaMysqlAgentRtaOptions `json:"rta_options,omitempty"` +} + +// Validate validates this get agent OK body rta mysql agent +func (o *GetAgentOKBodyRtaMysqlAgent) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if err := o.validateRtaOptions(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var getAgentOkBodyRtaMysqlAgentTypeStatusPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + getAgentOkBodyRtaMysqlAgentTypeStatusPropEnum = append(getAgentOkBodyRtaMysqlAgentTypeStatusPropEnum, v) + } +} + +const ( + + // GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + + // GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + GetAgentOKBodyRtaMysqlAgentStatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *GetAgentOKBodyRtaMysqlAgent) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, getAgentOkBodyRtaMysqlAgentTypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *GetAgentOKBodyRtaMysqlAgent) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("getAgentOk"+"."+"rta_mysql_agent"+"."+"status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var getAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + getAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum = append(getAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum, v) + } +} + +const ( + + // GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + GetAgentOKBodyRtaMysqlAgentLogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *GetAgentOKBodyRtaMysqlAgent) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, getAgentOkBodyRtaMysqlAgentTypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *GetAgentOKBodyRtaMysqlAgent) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("getAgentOk"+"."+"rta_mysql_agent"+"."+"log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +func (o *GetAgentOKBodyRtaMysqlAgent) validateRtaOptions(formats strfmt.Registry) error { + if swag.IsZero(o.RtaOptions) { // not required + return nil + } + + if o.RtaOptions != nil { + if err := o.RtaOptions.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("getAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("getAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") + } + + return err + } + } + + return nil +} + +// ContextValidate validate this get agent OK body rta mysql agent based on the context it is used +func (o *GetAgentOKBodyRtaMysqlAgent) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateRtaOptions(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *GetAgentOKBodyRtaMysqlAgent) contextValidateRtaOptions(ctx context.Context, formats strfmt.Registry) error { + if o.RtaOptions != nil { + + if swag.IsZero(o.RtaOptions) { // not required + return nil + } + + if err := o.RtaOptions.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("getAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("getAgentOk" + "." + "rta_mysql_agent" + "." + "rta_options") + } + + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *GetAgentOKBodyRtaMysqlAgent) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *GetAgentOKBodyRtaMysqlAgent) UnmarshalBinary(b []byte) error { + var res GetAgentOKBodyRtaMysqlAgent + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +GetAgentOKBodyRtaMysqlAgentRtaOptions RTAOptions holds Real-Time Query Analytics agent options. +swagger:model GetAgentOKBodyRtaMysqlAgentRtaOptions +*/ +type GetAgentOKBodyRtaMysqlAgentRtaOptions struct { + // Query collect interval (default 2s is set by server). + CollectInterval string `json:"collect_interval,omitempty"` +} + +// Validate validates this get agent OK body rta mysql agent rta options +func (o *GetAgentOKBodyRtaMysqlAgentRtaOptions) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this get agent OK body rta mysql agent rta options based on context it is used +func (o *GetAgentOKBodyRtaMysqlAgentRtaOptions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *GetAgentOKBodyRtaMysqlAgentRtaOptions) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *GetAgentOKBodyRtaMysqlAgentRtaOptions) UnmarshalBinary(b []byte) error { + var res GetAgentOKBodyRtaMysqlAgentRtaOptions + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + /* GetAgentOKBodyValkeyExporter ValkeyExporter runs on Generic or Container Node and exposes Valkey Service metrics. swagger:model GetAgentOKBodyValkeyExporter 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 9f92402574e..ff023db5bb9 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 @@ -474,6 +474,9 @@ type ListAgentsOKBody struct { // rta mongodb agent RtaMongodbAgent []*ListAgentsOKBodyRtaMongodbAgentItems0 `json:"rta_mongodb_agent"` + + // rta mysql agent + RtaMysqlAgent []*ListAgentsOKBodyRtaMysqlAgentItems0 `json:"rta_mysql_agent"` } // Validate validates this list agents OK body @@ -556,6 +559,10 @@ func (o *ListAgentsOKBody) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := o.validateRtaMysqlAgent(formats); err != nil { + res = append(res, err) + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } @@ -1132,6 +1139,36 @@ func (o *ListAgentsOKBody) validateRtaMongodbAgent(formats strfmt.Registry) erro return nil } +func (o *ListAgentsOKBody) validateRtaMysqlAgent(formats strfmt.Registry) error { + if swag.IsZero(o.RtaMysqlAgent) { // not required + return nil + } + + for i := 0; i < len(o.RtaMysqlAgent); i++ { + if swag.IsZero(o.RtaMysqlAgent[i]) { // not required + continue + } + + if o.RtaMysqlAgent[i] != nil { + if err := o.RtaMysqlAgent[i].Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("listAgentsOk" + "." + "rta_mysql_agent" + "." + strconv.Itoa(i)) + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("listAgentsOk" + "." + "rta_mysql_agent" + "." + strconv.Itoa(i)) + } + + return err + } + } + + } + + return nil +} + // ContextValidate validate this list agents OK body based on the context it is used func (o *ListAgentsOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error @@ -1212,6 +1249,10 @@ func (o *ListAgentsOKBody) ContextValidate(ctx context.Context, formats strfmt.R res = append(res, err) } + if err := o.contextValidateRtaMysqlAgent(ctx, formats); err != nil { + res = append(res, err) + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } @@ -1712,6 +1753,32 @@ func (o *ListAgentsOKBody) contextValidateRtaMongodbAgent(ctx context.Context, f return nil } +func (o *ListAgentsOKBody) contextValidateRtaMysqlAgent(ctx context.Context, formats strfmt.Registry) error { + for i := 0; i < len(o.RtaMysqlAgent); i++ { + if o.RtaMysqlAgent[i] != nil { + + if swag.IsZero(o.RtaMysqlAgent[i]) { // not required + return nil + } + + if err := o.RtaMysqlAgent[i].ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("listAgentsOk" + "." + "rta_mysql_agent" + "." + strconv.Itoa(i)) + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("listAgentsOk" + "." + "rta_mysql_agent" + "." + strconv.Itoa(i)) + } + + return err + } + } + } + + return nil +} + // MarshalBinary interface implementation func (o *ListAgentsOKBody) MarshalBinary() ([]byte, error) { if o == nil { @@ -6072,6 +6139,309 @@ func (o *ListAgentsOKBodyRtaMongodbAgentItems0RtaOptions) UnmarshalBinary(b []by return nil } +/* +ListAgentsOKBodyRtaMysqlAgentItems0 RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server. +swagger:model ListAgentsOKBodyRtaMysqlAgentItems0 +*/ +type ListAgentsOKBodyRtaMysqlAgentItems0 struct { + // Unique agent identifier. + AgentID string `json:"agent_id,omitempty"` + + // The pmm-agent identifier which runs this instance. + PMMAgentID string `json:"pmm_agent_id,omitempty"` + + // Desired Agent status: enabled (false) or disabled (true). + Disabled bool `json:"disabled,omitempty"` + + // Service identifier. + ServiceID string `json:"service_id,omitempty"` + + // MySQL username for getting the currently running queries. + Username string `json:"username,omitempty"` + + // Use TLS for database connections. + TLS bool `json:"tls,omitempty"` + + // Skip TLS certificate and hostname validation. + TLSSkipVerify bool `json:"tls_skip_verify,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // AgentStatus represents actual Agent status. + // + // - AGENT_STATUS_STARTING: Agent is starting. + // - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting. + // - AGENT_STATUS_RUNNING: Agent is running. + // - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon. + // - AGENT_STATUS_STOPPING: Agent is stopping. + // - AGENT_STATUS_DONE: Agent has been stopped or disabled. + // - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state. + // Enum: ["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"] + Status *string `json:"status,omitempty"` + + // Log level for exporters + // + // - 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"` + + // rta options + RtaOptions *ListAgentsOKBodyRtaMysqlAgentItems0RtaOptions `json:"rta_options,omitempty"` +} + +// Validate validates this list agents OK body rta mysql agent items0 +func (o *ListAgentsOKBodyRtaMysqlAgentItems0) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateStatus(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLogLevel(formats); err != nil { + res = append(res, err) + } + + if err := o.validateRtaOptions(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +var listAgentsOkBodyRtaMysqlAgentItems0TypeStatusPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["AGENT_STATUS_UNSPECIFIED","AGENT_STATUS_STARTING","AGENT_STATUS_INITIALIZATION_ERROR","AGENT_STATUS_RUNNING","AGENT_STATUS_WAITING","AGENT_STATUS_STOPPING","AGENT_STATUS_DONE","AGENT_STATUS_UNKNOWN"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + listAgentsOkBodyRtaMysqlAgentItems0TypeStatusPropEnum = append(listAgentsOkBodyRtaMysqlAgentItems0TypeStatusPropEnum, v) + } +} + +const ( + + // ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSUNSPECIFIED captures enum value "AGENT_STATUS_UNSPECIFIED" + ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSUNSPECIFIED string = "AGENT_STATUS_UNSPECIFIED" + + // ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSSTARTING captures enum value "AGENT_STATUS_STARTING" + ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSSTARTING string = "AGENT_STATUS_STARTING" + + // ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSINITIALIZATIONERROR captures enum value "AGENT_STATUS_INITIALIZATION_ERROR" + ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSINITIALIZATIONERROR string = "AGENT_STATUS_INITIALIZATION_ERROR" + + // ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSRUNNING captures enum value "AGENT_STATUS_RUNNING" + ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSRUNNING string = "AGENT_STATUS_RUNNING" + + // ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSWAITING captures enum value "AGENT_STATUS_WAITING" + ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSWAITING string = "AGENT_STATUS_WAITING" + + // ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSSTOPPING captures enum value "AGENT_STATUS_STOPPING" + ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSSTOPPING string = "AGENT_STATUS_STOPPING" + + // ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSDONE captures enum value "AGENT_STATUS_DONE" + ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSDONE string = "AGENT_STATUS_DONE" + + // ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSUNKNOWN captures enum value "AGENT_STATUS_UNKNOWN" + ListAgentsOKBodyRtaMysqlAgentItems0StatusAGENTSTATUSUNKNOWN string = "AGENT_STATUS_UNKNOWN" +) + +// prop value enum +func (o *ListAgentsOKBodyRtaMysqlAgentItems0) validateStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, listAgentsOkBodyRtaMysqlAgentItems0TypeStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ListAgentsOKBodyRtaMysqlAgentItems0) validateStatus(formats strfmt.Registry) error { + if swag.IsZero(o.Status) { // not required + return nil + } + + // value enum + if err := o.validateStatusEnum("status", "body", *o.Status); err != nil { + return err + } + + return nil +} + +var listAgentsOkBodyRtaMysqlAgentItems0TypeLogLevelPropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["LOG_LEVEL_UNSPECIFIED","LOG_LEVEL_FATAL","LOG_LEVEL_ERROR","LOG_LEVEL_WARN","LOG_LEVEL_INFO","LOG_LEVEL_DEBUG"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + listAgentsOkBodyRtaMysqlAgentItems0TypeLogLevelPropEnum = append(listAgentsOkBodyRtaMysqlAgentItems0TypeLogLevelPropEnum, v) + } +} + +const ( + + // ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELUNSPECIFIED captures enum value "LOG_LEVEL_UNSPECIFIED" + ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELUNSPECIFIED string = "LOG_LEVEL_UNSPECIFIED" + + // ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELFATAL captures enum value "LOG_LEVEL_FATAL" + ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELFATAL string = "LOG_LEVEL_FATAL" + + // ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELERROR captures enum value "LOG_LEVEL_ERROR" + ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELERROR string = "LOG_LEVEL_ERROR" + + // ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELWARN captures enum value "LOG_LEVEL_WARN" + ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELWARN string = "LOG_LEVEL_WARN" + + // ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELINFO captures enum value "LOG_LEVEL_INFO" + ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELINFO string = "LOG_LEVEL_INFO" + + // ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELDEBUG captures enum value "LOG_LEVEL_DEBUG" + ListAgentsOKBodyRtaMysqlAgentItems0LogLevelLOGLEVELDEBUG string = "LOG_LEVEL_DEBUG" +) + +// prop value enum +func (o *ListAgentsOKBodyRtaMysqlAgentItems0) validateLogLevelEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, listAgentsOkBodyRtaMysqlAgentItems0TypeLogLevelPropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ListAgentsOKBodyRtaMysqlAgentItems0) validateLogLevel(formats strfmt.Registry) error { + if swag.IsZero(o.LogLevel) { // not required + return nil + } + + // value enum + if err := o.validateLogLevelEnum("log_level", "body", *o.LogLevel); err != nil { + return err + } + + return nil +} + +func (o *ListAgentsOKBodyRtaMysqlAgentItems0) validateRtaOptions(formats strfmt.Registry) error { + if swag.IsZero(o.RtaOptions) { // not required + return nil + } + + if o.RtaOptions != nil { + if err := o.RtaOptions.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("rta_options") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("rta_options") + } + + return err + } + } + + return nil +} + +// ContextValidate validate this list agents OK body rta mysql agent items0 based on the context it is used +func (o *ListAgentsOKBodyRtaMysqlAgentItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateRtaOptions(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *ListAgentsOKBodyRtaMysqlAgentItems0) contextValidateRtaOptions(ctx context.Context, formats strfmt.Registry) error { + if o.RtaOptions != nil { + + if swag.IsZero(o.RtaOptions) { // not required + return nil + } + + if err := o.RtaOptions.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("rta_options") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("rta_options") + } + + return err + } + } + + return nil +} + +// MarshalBinary interface implementation +func (o *ListAgentsOKBodyRtaMysqlAgentItems0) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ListAgentsOKBodyRtaMysqlAgentItems0) UnmarshalBinary(b []byte) error { + var res ListAgentsOKBodyRtaMysqlAgentItems0 + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/* +ListAgentsOKBodyRtaMysqlAgentItems0RtaOptions RTAOptions holds Real-Time Query Analytics agent options. +swagger:model ListAgentsOKBodyRtaMysqlAgentItems0RtaOptions +*/ +type ListAgentsOKBodyRtaMysqlAgentItems0RtaOptions struct { + // Query collect interval (default 2s is set by server). + CollectInterval string `json:"collect_interval,omitempty"` +} + +// Validate validates this list agents OK body rta mysql agent items0 rta options +func (o *ListAgentsOKBodyRtaMysqlAgentItems0RtaOptions) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this list agents OK body rta mysql agent items0 rta options based on context it is used +func (o *ListAgentsOKBodyRtaMysqlAgentItems0RtaOptions) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ListAgentsOKBodyRtaMysqlAgentItems0RtaOptions) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ListAgentsOKBodyRtaMysqlAgentItems0RtaOptions) UnmarshalBinary(b []byte) error { + var res ListAgentsOKBodyRtaMysqlAgentItems0RtaOptions + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + /* ListAgentsOKBodyVMAgentItems0 VMAgent runs on Generic or Container Node alongside pmm-agent. // It scrapes other exporter Agents that are configured with push_metrics_enabled diff --git a/api/inventory/v1/json/v1.json b/api/inventory/v1/json/v1.json index 502c7a455cf..39af9cf9161 100644 --- a/api/inventory/v1/json/v1.json +++ b/api/inventory/v1/json/v1.json @@ -63,7 +63,8 @@ "AGENT_TYPE_RDS_EXPORTER", "AGENT_TYPE_AZURE_DATABASE_EXPORTER", "AGENT_TYPE_NOMAD_AGENT", - "AGENT_TYPE_RTA_MONGODB_AGENT" + "AGENT_TYPE_RTA_MONGODB_AGENT", + "AGENT_TYPE_RTA_MYSQL_AGENT" ], "type": "string", "default": "AGENT_TYPE_UNSPECIFIED", @@ -2207,6 +2208,102 @@ } }, "x-order": 18 + }, + "rta_mysql_agent": { + "type": "array", + "items": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + } + }, + "x-order": 19 } } } @@ -3808,6 +3905,97 @@ } }, "x-order": 16 + }, + "rta_mysql_agent": { + "type": "object", + "properties": { + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 0 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 1 + }, + "username": { + "description": "MySQL username for getting queries data.", + "type": "string", + "x-order": 2 + }, + "password": { + "description": "MySQL password for getting queries data.", + "type": "string", + "x-order": 3 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 4 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 5 + }, + "tls": { + "description": "MySQL specific options.\nUse TLS for database connections.", + "type": "boolean", + "x-order": 6 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 7 + }, + "tls_ca": { + "description": "Certificate Authority certificate chain.", + "type": "string", + "x-order": 8 + }, + "tls_cert": { + "description": "Client certificate.", + "type": "string", + "x-order": 9 + }, + "tls_key": { + "description": "Client key.", + "type": "string", + "x-order": 10 + }, + "skip_connection_check": { + "description": "Skip connection check.", + "type": "boolean", + "x-order": 11 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 12 + } + }, + "x-order": 17 } } } @@ -5799,6 +5987,99 @@ } }, "x-order": 16 + }, + "rta_mysql_agent": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + }, + "x-order": 17 } } } @@ -7776,7 +8057,128 @@ "items": { "type": "string" }, - "x-order": 9 + "x-order": 9 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 10 + }, + "listen_port": { + "description": "Listen port for scraping metrics.", + "type": "integer", + "format": "int64", + "x-order": 11 + }, + "process_exec_path": { + "description": "Path to exec process.", + "type": "string", + "x-order": 12 + }, + "expose_exporter": { + "type": "boolean", + "title": "Optionally expose the exporter process on all public interfaces", + "x-order": 13 + }, + "metrics_resolutions": { + "description": "MetricsResolutions represents Prometheus exporters metrics resolutions.", + "type": "object", + "properties": { + "hr": { + "description": "High resolution. In JSON should be represented as a string with number of seconds with `s` suffix.", + "type": "string", + "x-order": 0 + }, + "mr": { + "description": "Medium resolution. In JSON should be represented as a string with number of seconds with `s` suffix.", + "type": "string", + "x-order": 1 + }, + "lr": { + "description": "Low resolution. In JSON should be represented as a string with number of seconds with `s` suffix.", + "type": "string", + "x-order": 2 + } + }, + "x-order": 14 + }, + "connection_timeout": { + "description": "Connection timeout for exporter (if set).", + "type": "string", + "x-order": 15 + } + }, + "x-order": 17 + }, + "rta_mongodb_agent": { + "description": "RTAMongoDBAgent runs within pmm-agent and sends MongoDB Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MongoDB username for getting profiler data.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 }, "status": { "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", @@ -7792,56 +8194,28 @@ "AGENT_STATUS_DONE", "AGENT_STATUS_UNKNOWN" ], - "x-order": 10 - }, - "listen_port": { - "description": "Listen port for scraping metrics.", - "type": "integer", - "format": "int64", - "x-order": 11 - }, - "process_exec_path": { - "description": "Path to exec process.", - "type": "string", - "x-order": 12 - }, - "expose_exporter": { - "type": "boolean", - "title": "Optionally expose the exporter process on all public interfaces", - "x-order": 13 - }, - "metrics_resolutions": { - "description": "MetricsResolutions represents Prometheus exporters metrics resolutions.", - "type": "object", - "properties": { - "hr": { - "description": "High resolution. In JSON should be represented as a string with number of seconds with `s` suffix.", - "type": "string", - "x-order": 0 - }, - "mr": { - "description": "Medium resolution. In JSON should be represented as a string with number of seconds with `s` suffix.", - "type": "string", - "x-order": 1 - }, - "lr": { - "description": "Low resolution. In JSON should be represented as a string with number of seconds with `s` suffix.", - "type": "string", - "x-order": 2 - } - }, - "x-order": 14 + "x-order": 9 }, - "connection_timeout": { - "description": "Connection timeout for exporter (if set).", + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", "type": "string", - "x-order": 15 + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 } }, - "x-order": 17 + "x-order": 18 }, - "rta_mongodb_agent": { - "description": "RTAMongoDBAgent runs within pmm-agent and sends MongoDB Real-Time Query Analytics data to the PMM Server.", + "rta_mysql_agent": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", "type": "object", "properties": { "agent_id": { @@ -7865,7 +8239,7 @@ "x-order": 3 }, "username": { - "description": "MongoDB username for getting profiler data.", + "description": "MySQL username for getting the currently running queries.", "type": "string", "x-order": 4 }, @@ -7931,7 +8305,7 @@ "x-order": 10 } }, - "x-order": 18 + "x-order": 19 } } } @@ -10069,6 +10443,110 @@ } }, "x-order": 16 + }, + "rta_mysql_agent": { + "type": "object", + "properties": { + "enable": { + "description": "Enable this Agent. Agents are enabled by default when they get added.", + "type": "boolean", + "x-nullable": true, + "x-order": 0 + }, + "custom_labels": { + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", + "type": "object", + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } + }, + "x-nullable": true, + "x-order": 1 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-nullable": true, + "x-order": 2 + }, + "username": { + "description": "MySQL username for getting queries data.", + "type": "string", + "x-nullable": true, + "x-order": 3 + }, + "password": { + "description": "MySQL password for getting queries data.", + "type": "string", + "x-nullable": true, + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-nullable": true, + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-nullable": true, + "x-order": 6 + }, + "tls_ca": { + "description": "Certificate Authority certificate chain.", + "type": "string", + "x-nullable": true, + "x-order": 7 + }, + "tls_cert": { + "description": "Client certificate.", + "type": "string", + "x-nullable": true, + "x-order": 8 + }, + "tls_key": { + "description": "Client key.", + "type": "string", + "x-nullable": true, + "x-order": 9 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-nullable": true, + "x-order": 10 + }, + "skip_connection_check": { + "description": "Skip connection check.", + "type": "boolean", + "x-nullable": true, + "x-order": 11 + } + }, + "x-order": 17 } } } @@ -12073,6 +12551,99 @@ } }, "x-order": 16 + }, + "rta_mysql_agent": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + }, + "x-order": 17 } } } diff --git a/api/inventory/v1/types/agent_types.go b/api/inventory/v1/types/agent_types.go index 2ddb4e6dd32..c60dda2f9cc 100644 --- a/api/inventory/v1/types/agent_types.go +++ b/api/inventory/v1/types/agent_types.go @@ -37,6 +37,7 @@ const ( AgentTypeExternalExporter = "AGENT_TYPE_EXTERNAL_EXPORTER" AgentTypeAzureDatabaseExporter = "AGENT_TYPE_AZURE_DATABASE_EXPORTER" AgentTypeRTAMongoDBAgent = "AGENT_TYPE_RTA_MONGODB_AGENT" + AgentTypeRTAMySQLAgent = "AGENT_TYPE_RTA_MYSQL_AGENT" ) var agentTypeNames = map[string]string{ @@ -60,6 +61,7 @@ var agentTypeNames = map[string]string{ AgentTypeExternalExporter: "external-exporter", AgentTypeAzureDatabaseExporter: "azure_database_exporter", AgentTypeRTAMongoDBAgent: "rta_mongodb_agent", + AgentTypeRTAMySQLAgent: "rta_mysql_agent", } // AgentTypeName returns human friendly agent type to be used in reports. diff --git a/api/realtimeanalytics/v1/json/client/realtime_analytics_service/list_services_responses.go b/api/realtimeanalytics/v1/json/client/realtime_analytics_service/list_services_responses.go index a3222654851..0eec6a5477c 100644 --- a/api/realtimeanalytics/v1/json/client/realtime_analytics_service/list_services_responses.go +++ b/api/realtimeanalytics/v1/json/client/realtime_analytics_service/list_services_responses.go @@ -419,6 +419,9 @@ swagger:model ListServicesOKBody type ListServicesOKBody struct { // mongodb Mongodb []*ListServicesOKBodyMongodbItems0 `json:"mongodb"` + + // mysql + Mysql []*ListServicesOKBodyMysqlItems0 `json:"mysql"` } // Validate validates this list services OK body @@ -429,6 +432,10 @@ func (o *ListServicesOKBody) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := o.validateMysql(formats); err != nil { + res = append(res, err) + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } @@ -465,6 +472,36 @@ func (o *ListServicesOKBody) validateMongodb(formats strfmt.Registry) error { return nil } +func (o *ListServicesOKBody) validateMysql(formats strfmt.Registry) error { + if swag.IsZero(o.Mysql) { // not required + return nil + } + + for i := 0; i < len(o.Mysql); i++ { + if swag.IsZero(o.Mysql[i]) { // not required + continue + } + + if o.Mysql[i] != nil { + if err := o.Mysql[i].Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("listServicesOk" + "." + "mysql" + "." + strconv.Itoa(i)) + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("listServicesOk" + "." + "mysql" + "." + strconv.Itoa(i)) + } + + return err + } + } + + } + + return nil +} + // ContextValidate validate this list services OK body based on the context it is used func (o *ListServicesOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error @@ -473,6 +510,10 @@ func (o *ListServicesOKBody) ContextValidate(ctx context.Context, formats strfmt res = append(res, err) } + if err := o.contextValidateMysql(ctx, formats); err != nil { + res = append(res, err) + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } @@ -505,6 +546,32 @@ func (o *ListServicesOKBody) contextValidateMongodb(ctx context.Context, formats return nil } +func (o *ListServicesOKBody) contextValidateMysql(ctx context.Context, formats strfmt.Registry) error { + for i := 0; i < len(o.Mysql); i++ { + if o.Mysql[i] != nil { + + if swag.IsZero(o.Mysql[i]) { // not required + return nil + } + + if err := o.Mysql[i].ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("listServicesOk" + "." + "mysql" + "." + strconv.Itoa(i)) + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("listServicesOk" + "." + "mysql" + "." + strconv.Itoa(i)) + } + + return err + } + } + } + + return nil +} + // MarshalBinary interface implementation func (o *ListServicesOKBody) MarshalBinary() ([]byte, error) { if o == nil { @@ -592,3 +659,76 @@ func (o *ListServicesOKBodyMongodbItems0) UnmarshalBinary(b []byte) error { *o = res return nil } + +/* +ListServicesOKBodyMysqlItems0 MySQLService represents a generic MySQL instance. +swagger:model ListServicesOKBodyMysqlItems0 +*/ +type ListServicesOKBodyMysqlItems0 struct { + // Unique randomly generated instance identifier. + ServiceID string `json:"service_id,omitempty"` + + // Unique across all Services user-defined name. + ServiceName string `json:"service_name,omitempty"` + + // Node identifier where this instance runs. + NodeID string `json:"node_id,omitempty"` + + // Access address (DNS name or IP). + // Address (and port) or socket is required. + Address string `json:"address,omitempty"` + + // Access port. + // Port is required when the address present. + Port int64 `json:"port,omitempty"` + + // Access unix socket. + // Address (and port) or socket is required. + Socket string `json:"socket,omitempty"` + + // Environment name. + Environment string `json:"environment,omitempty"` + + // Cluster name. + Cluster string `json:"cluster,omitempty"` + + // Replication set name. + ReplicationSet string `json:"replication_set,omitempty"` + + // Custom user-assigned labels. + CustomLabels map[string]string `json:"custom_labels,omitempty"` + + // MySQL version. + Version string `json:"version,omitempty"` + + // Extra parameters to be added to the DSN. + ExtraDsnParams map[string]string `json:"extra_dsn_params,omitempty"` +} + +// Validate validates this list services OK body mysql items0 +func (o *ListServicesOKBodyMysqlItems0) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this list services OK body mysql items0 based on context it is used +func (o *ListServicesOKBodyMysqlItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *ListServicesOKBodyMysqlItems0) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *ListServicesOKBodyMysqlItems0) UnmarshalBinary(b []byte) error { + var res ListServicesOKBodyMysqlItems0 + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} diff --git a/api/realtimeanalytics/v1/json/client/realtime_analytics_service/list_sessions_responses.go b/api/realtimeanalytics/v1/json/client/realtime_analytics_service/list_sessions_responses.go index 6ba9293fb18..a35c78d9c3b 100644 --- a/api/realtimeanalytics/v1/json/client/realtime_analytics_service/list_sessions_responses.go +++ b/api/realtimeanalytics/v1/json/client/realtime_analytics_service/list_sessions_responses.go @@ -552,6 +552,10 @@ type ListSessionsOKBodySessionsItems0 struct { // - SESSION_STATUS_DOWN: Session has been stopped or disabled. // Enum: ["SESSION_STATUS_UNSPECIFIED","SESSION_STATUS_ERROR","SESSION_STATUS_RUNNING","SESSION_STATUS_DOWN"] Status *string `json:"status,omitempty"` + + // ServiceType describes supported Service types. + // Enum: ["SERVICE_TYPE_UNSPECIFIED","SERVICE_TYPE_MYSQL_SERVICE","SERVICE_TYPE_MONGODB_SERVICE","SERVICE_TYPE_POSTGRESQL_SERVICE","SERVICE_TYPE_VALKEY_SERVICE","SERVICE_TYPE_PROXYSQL_SERVICE","SERVICE_TYPE_HAPROXY_SERVICE","SERVICE_TYPE_EXTERNAL_SERVICE"] + ServiceType *string `json:"service_type,omitempty"` } // Validate validates this list sessions OK body sessions items0 @@ -566,6 +570,10 @@ func (o *ListSessionsOKBodySessionsItems0) Validate(formats strfmt.Registry) err res = append(res, err) } + if err := o.validateServiceType(formats); err != nil { + res = append(res, err) + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } @@ -632,6 +640,66 @@ func (o *ListSessionsOKBodySessionsItems0) validateStatus(formats strfmt.Registr return nil } +var listSessionsOkBodySessionsItems0TypeServiceTypePropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["SERVICE_TYPE_UNSPECIFIED","SERVICE_TYPE_MYSQL_SERVICE","SERVICE_TYPE_MONGODB_SERVICE","SERVICE_TYPE_POSTGRESQL_SERVICE","SERVICE_TYPE_VALKEY_SERVICE","SERVICE_TYPE_PROXYSQL_SERVICE","SERVICE_TYPE_HAPROXY_SERVICE","SERVICE_TYPE_EXTERNAL_SERVICE"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + listSessionsOkBodySessionsItems0TypeServiceTypePropEnum = append(listSessionsOkBodySessionsItems0TypeServiceTypePropEnum, v) + } +} + +const ( + + // ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEUNSPECIFIED captures enum value "SERVICE_TYPE_UNSPECIFIED" + ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEUNSPECIFIED string = "SERVICE_TYPE_UNSPECIFIED" + + // ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEMYSQLSERVICE captures enum value "SERVICE_TYPE_MYSQL_SERVICE" + ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEMYSQLSERVICE string = "SERVICE_TYPE_MYSQL_SERVICE" + + // ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEMONGODBSERVICE captures enum value "SERVICE_TYPE_MONGODB_SERVICE" + ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEMONGODBSERVICE string = "SERVICE_TYPE_MONGODB_SERVICE" + + // ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEPOSTGRESQLSERVICE captures enum value "SERVICE_TYPE_POSTGRESQL_SERVICE" + ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEPOSTGRESQLSERVICE string = "SERVICE_TYPE_POSTGRESQL_SERVICE" + + // ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEVALKEYSERVICE captures enum value "SERVICE_TYPE_VALKEY_SERVICE" + ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEVALKEYSERVICE string = "SERVICE_TYPE_VALKEY_SERVICE" + + // ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEPROXYSQLSERVICE captures enum value "SERVICE_TYPE_PROXYSQL_SERVICE" + ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEPROXYSQLSERVICE string = "SERVICE_TYPE_PROXYSQL_SERVICE" + + // ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEHAPROXYSERVICE captures enum value "SERVICE_TYPE_HAPROXY_SERVICE" + ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEHAPROXYSERVICE string = "SERVICE_TYPE_HAPROXY_SERVICE" + + // ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEEXTERNALSERVICE captures enum value "SERVICE_TYPE_EXTERNAL_SERVICE" + ListSessionsOKBodySessionsItems0ServiceTypeSERVICETYPEEXTERNALSERVICE string = "SERVICE_TYPE_EXTERNAL_SERVICE" +) + +// prop value enum +func (o *ListSessionsOKBodySessionsItems0) validateServiceTypeEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, listSessionsOkBodySessionsItems0TypeServiceTypePropEnum, true); err != nil { + return err + } + return nil +} + +func (o *ListSessionsOKBodySessionsItems0) validateServiceType(formats strfmt.Registry) error { + if swag.IsZero(o.ServiceType) { // not required + return nil + } + + // value enum + if err := o.validateServiceTypeEnum("service_type", "body", *o.ServiceType); err != nil { + return err + } + + return nil +} + // ContextValidate validates this list sessions OK body sessions items0 based on context it is used func (o *ListSessionsOKBodySessionsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil diff --git a/api/realtimeanalytics/v1/json/client/realtime_analytics_service/search_queries_responses.go b/api/realtimeanalytics/v1/json/client/realtime_analytics_service/search_queries_responses.go index 49e2f7af6c9..56c16dfa3f4 100644 --- a/api/realtimeanalytics/v1/json/client/realtime_analytics_service/search_queries_responses.go +++ b/api/realtimeanalytics/v1/json/client/realtime_analytics_service/search_queries_responses.go @@ -597,6 +597,9 @@ type SearchQueriesOKBodyQueriesItems0 struct { // mongo db payload MongoDBPayload *SearchQueriesOKBodyQueriesItems0MongoDBPayload `json:"mongo_db_payload,omitempty"` + + // my sql payload + MySQLPayload *SearchQueriesOKBodyQueriesItems0MySQLPayload `json:"my_sql_payload,omitempty"` } // Validate validates this search queries OK body queries items0 @@ -611,6 +614,10 @@ func (o *SearchQueriesOKBodyQueriesItems0) Validate(formats strfmt.Registry) err res = append(res, err) } + if err := o.validateMySQLPayload(formats); err != nil { + res = append(res, err) + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } @@ -652,6 +659,29 @@ func (o *SearchQueriesOKBodyQueriesItems0) validateMongoDBPayload(formats strfmt return nil } +func (o *SearchQueriesOKBodyQueriesItems0) validateMySQLPayload(formats strfmt.Registry) error { + if swag.IsZero(o.MySQLPayload) { // not required + return nil + } + + if o.MySQLPayload != nil { + if err := o.MySQLPayload.Validate(formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("my_sql_payload") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("my_sql_payload") + } + + return err + } + } + + return nil +} + // ContextValidate validate this search queries OK body queries items0 based on the context it is used func (o *SearchQueriesOKBodyQueriesItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { var res []error @@ -660,6 +690,10 @@ func (o *SearchQueriesOKBodyQueriesItems0) ContextValidate(ctx context.Context, res = append(res, err) } + if err := o.contextValidateMySQLPayload(ctx, formats); err != nil { + res = append(res, err) + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } @@ -690,6 +724,30 @@ func (o *SearchQueriesOKBodyQueriesItems0) contextValidateMongoDBPayload(ctx con return nil } +func (o *SearchQueriesOKBodyQueriesItems0) contextValidateMySQLPayload(ctx context.Context, formats strfmt.Registry) error { + if o.MySQLPayload != nil { + + if swag.IsZero(o.MySQLPayload) { // not required + return nil + } + + if err := o.MySQLPayload.ContextValidate(ctx, formats); err != nil { + ve := new(errors.Validation) + if stderrors.As(err, &ve) { + return ve.ValidateName("my_sql_payload") + } + ce := new(errors.CompositeError) + if stderrors.As(err, &ce) { + return ce.ValidateName("my_sql_payload") + } + + return err + } + } + + return nil +} + // MarshalBinary interface implementation func (o *SearchQueriesOKBodyQueriesItems0) MarshalBinary() ([]byte, error) { if o == nil { @@ -787,3 +845,65 @@ func (o *SearchQueriesOKBodyQueriesItems0MongoDBPayload) UnmarshalBinary(b []byt *o = res return nil } + +/* +SearchQueriesOKBodyQueriesItems0MySQLPayload QueryMySQLData holds MySQL-specific Real-Time Analytics query information. +// The data is sourced from the sys.x$processlist view. +swagger:model SearchQueriesOKBodyQueriesItems0MySQLPayload +*/ +type SearchQueriesOKBodyQueriesItems0MySQLPayload struct { + // MySQL instance address(host:port) that processing the query. + DBInstanceAddress string `json:"db_instance_address,omitempty"` + + // Client program name connected to MySQL (program_name from sys.x$processlist). + ProgramName string `json:"program_name,omitempty"` + + // Database name (db from sys.x$processlist). + DatabaseName string `json:"database_name,omitempty"` + + // Command type the connection is executing ("Query", "Execute", etc). + Command string `json:"command,omitempty"` + + // State of the connection/thread (for example "Sending data"). + State string `json:"state,omitempty"` + + // MySQL user name associated with the query. + Username string `json:"username,omitempty"` + + // Number of rows examined by the statement so far. + RowsExamined string `json:"rows_examined,omitempty"` + + // Number of rows sent by the statement so far. + RowsSent string `json:"rows_sent,omitempty"` + + // Indicates whether the statement performed a full table scan. + FullScan bool `json:"full_scan,omitempty"` +} + +// Validate validates this search queries OK body queries items0 my SQL payload +func (o *SearchQueriesOKBodyQueriesItems0MySQLPayload) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this search queries OK body queries items0 my SQL payload based on context it is used +func (o *SearchQueriesOKBodyQueriesItems0MySQLPayload) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *SearchQueriesOKBodyQueriesItems0MySQLPayload) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *SearchQueriesOKBodyQueriesItems0MySQLPayload) UnmarshalBinary(b []byte) error { + var res SearchQueriesOKBodyQueriesItems0MySQLPayload + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} diff --git a/api/realtimeanalytics/v1/json/client/realtime_analytics_service/start_session_responses.go b/api/realtimeanalytics/v1/json/client/realtime_analytics_service/start_session_responses.go index 33aed86a239..9cba746fe6a 100644 --- a/api/realtimeanalytics/v1/json/client/realtime_analytics_service/start_session_responses.go +++ b/api/realtimeanalytics/v1/json/client/realtime_analytics_service/start_session_responses.go @@ -580,6 +580,10 @@ type StartSessionOKBodySession struct { // - SESSION_STATUS_DOWN: Session has been stopped or disabled. // Enum: ["SESSION_STATUS_UNSPECIFIED","SESSION_STATUS_ERROR","SESSION_STATUS_RUNNING","SESSION_STATUS_DOWN"] Status *string `json:"status,omitempty"` + + // ServiceType describes supported Service types. + // Enum: ["SERVICE_TYPE_UNSPECIFIED","SERVICE_TYPE_MYSQL_SERVICE","SERVICE_TYPE_MONGODB_SERVICE","SERVICE_TYPE_POSTGRESQL_SERVICE","SERVICE_TYPE_VALKEY_SERVICE","SERVICE_TYPE_PROXYSQL_SERVICE","SERVICE_TYPE_HAPROXY_SERVICE","SERVICE_TYPE_EXTERNAL_SERVICE"] + ServiceType *string `json:"service_type,omitempty"` } // Validate validates this start session OK body session @@ -594,6 +598,10 @@ func (o *StartSessionOKBodySession) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := o.validateServiceType(formats); err != nil { + res = append(res, err) + } + if len(res) > 0 { return errors.CompositeValidationError(res...) } @@ -660,6 +668,66 @@ func (o *StartSessionOKBodySession) validateStatus(formats strfmt.Registry) erro return nil } +var startSessionOkBodySessionTypeServiceTypePropEnum []any + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["SERVICE_TYPE_UNSPECIFIED","SERVICE_TYPE_MYSQL_SERVICE","SERVICE_TYPE_MONGODB_SERVICE","SERVICE_TYPE_POSTGRESQL_SERVICE","SERVICE_TYPE_VALKEY_SERVICE","SERVICE_TYPE_PROXYSQL_SERVICE","SERVICE_TYPE_HAPROXY_SERVICE","SERVICE_TYPE_EXTERNAL_SERVICE"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + startSessionOkBodySessionTypeServiceTypePropEnum = append(startSessionOkBodySessionTypeServiceTypePropEnum, v) + } +} + +const ( + + // StartSessionOKBodySessionServiceTypeSERVICETYPEUNSPECIFIED captures enum value "SERVICE_TYPE_UNSPECIFIED" + StartSessionOKBodySessionServiceTypeSERVICETYPEUNSPECIFIED string = "SERVICE_TYPE_UNSPECIFIED" + + // StartSessionOKBodySessionServiceTypeSERVICETYPEMYSQLSERVICE captures enum value "SERVICE_TYPE_MYSQL_SERVICE" + StartSessionOKBodySessionServiceTypeSERVICETYPEMYSQLSERVICE string = "SERVICE_TYPE_MYSQL_SERVICE" + + // StartSessionOKBodySessionServiceTypeSERVICETYPEMONGODBSERVICE captures enum value "SERVICE_TYPE_MONGODB_SERVICE" + StartSessionOKBodySessionServiceTypeSERVICETYPEMONGODBSERVICE string = "SERVICE_TYPE_MONGODB_SERVICE" + + // StartSessionOKBodySessionServiceTypeSERVICETYPEPOSTGRESQLSERVICE captures enum value "SERVICE_TYPE_POSTGRESQL_SERVICE" + StartSessionOKBodySessionServiceTypeSERVICETYPEPOSTGRESQLSERVICE string = "SERVICE_TYPE_POSTGRESQL_SERVICE" + + // StartSessionOKBodySessionServiceTypeSERVICETYPEVALKEYSERVICE captures enum value "SERVICE_TYPE_VALKEY_SERVICE" + StartSessionOKBodySessionServiceTypeSERVICETYPEVALKEYSERVICE string = "SERVICE_TYPE_VALKEY_SERVICE" + + // StartSessionOKBodySessionServiceTypeSERVICETYPEPROXYSQLSERVICE captures enum value "SERVICE_TYPE_PROXYSQL_SERVICE" + StartSessionOKBodySessionServiceTypeSERVICETYPEPROXYSQLSERVICE string = "SERVICE_TYPE_PROXYSQL_SERVICE" + + // StartSessionOKBodySessionServiceTypeSERVICETYPEHAPROXYSERVICE captures enum value "SERVICE_TYPE_HAPROXY_SERVICE" + StartSessionOKBodySessionServiceTypeSERVICETYPEHAPROXYSERVICE string = "SERVICE_TYPE_HAPROXY_SERVICE" + + // StartSessionOKBodySessionServiceTypeSERVICETYPEEXTERNALSERVICE captures enum value "SERVICE_TYPE_EXTERNAL_SERVICE" + StartSessionOKBodySessionServiceTypeSERVICETYPEEXTERNALSERVICE string = "SERVICE_TYPE_EXTERNAL_SERVICE" +) + +// prop value enum +func (o *StartSessionOKBodySession) validateServiceTypeEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, startSessionOkBodySessionTypeServiceTypePropEnum, true); err != nil { + return err + } + return nil +} + +func (o *StartSessionOKBodySession) validateServiceType(formats strfmt.Registry) error { + if swag.IsZero(o.ServiceType) { // not required + return nil + } + + // value enum + if err := o.validateServiceTypeEnum("startSessionOk"+"."+"session"+"."+"service_type", "body", *o.ServiceType); err != nil { + return err + } + + return nil +} + // ContextValidate validates this start session OK body session based on context it is used func (o *StartSessionOKBodySession) ContextValidate(ctx context.Context, formats strfmt.Registry) error { return nil diff --git a/api/realtimeanalytics/v1/json/v1.json b/api/realtimeanalytics/v1/json/v1.json index d79d757cc40..0b1b32c5b09 100644 --- a/api/realtimeanalytics/v1/json/v1.json +++ b/api/realtimeanalytics/v1/json/v1.json @@ -153,6 +153,60 @@ } }, "x-order": 8 + }, + "my_sql_payload": { + "description": "QueryMySQLData holds MySQL-specific Real-Time Analytics query information.\nThe data is sourced from the sys.x$processlist view.", + "type": "object", + "properties": { + "db_instance_address": { + "description": "MySQL instance address(host:port) that processing the query.", + "type": "string", + "x-order": 0 + }, + "program_name": { + "description": "Client program name connected to MySQL (program_name from sys.x$processlist).", + "type": "string", + "x-order": 1 + }, + "database_name": { + "description": "Database name (db from sys.x$processlist).", + "type": "string", + "x-order": 2 + }, + "command": { + "description": "Command type the connection is executing (\"Query\", \"Execute\", etc).", + "type": "string", + "x-order": 3 + }, + "state": { + "description": "State of the connection/thread (for example \"Sending data\").", + "type": "string", + "x-order": 4 + }, + "username": { + "description": "MySQL user name associated with the query.", + "type": "string", + "x-order": 5 + }, + "rows_examined": { + "description": "Number of rows examined by the statement so far.", + "type": "string", + "format": "int64", + "x-order": 6 + }, + "rows_sent": { + "description": "Number of rows sent by the statement so far.", + "type": "string", + "format": "int64", + "x-order": 7 + }, + "full_scan": { + "description": "Indicates whether the statement performed a full table scan.", + "type": "boolean", + "x-order": 8 + } + }, + "x-order": 9 } } }, @@ -296,6 +350,83 @@ } }, "x-order": 0 + }, + "mysql": { + "type": "array", + "items": { + "description": "MySQLService represents a generic MySQL instance.", + "type": "object", + "properties": { + "service_id": { + "description": "Unique randomly generated instance identifier.", + "type": "string", + "x-order": 0 + }, + "service_name": { + "description": "Unique across all Services user-defined name.", + "type": "string", + "x-order": 1 + }, + "node_id": { + "description": "Node identifier where this instance runs.", + "type": "string", + "x-order": 2 + }, + "address": { + "description": "Access address (DNS name or IP).\nAddress (and port) or socket is required.", + "type": "string", + "x-order": 3 + }, + "port": { + "description": "Access port.\nPort is required when the address present.", + "type": "integer", + "format": "int64", + "x-order": 4 + }, + "socket": { + "description": "Access unix socket.\nAddress (and port) or socket is required.", + "type": "string", + "x-order": 5 + }, + "environment": { + "description": "Environment name.", + "type": "string", + "x-order": 6 + }, + "cluster": { + "description": "Cluster name.", + "type": "string", + "x-order": 7 + }, + "replication_set": { + "description": "Replication set name.", + "type": "string", + "x-order": 8 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 9 + }, + "version": { + "description": "MySQL version.", + "type": "string", + "x-order": 10 + }, + "extra_dsn_params": { + "description": "Extra parameters to be added to the DSN.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 11 + } + } + }, + "x-order": 1 } } } @@ -401,6 +532,22 @@ "SESSION_STATUS_DOWN" ], "x-order": 5 + }, + "service_type": { + "description": "ServiceType describes supported Service types.", + "type": "string", + "default": "SERVICE_TYPE_UNSPECIFIED", + "enum": [ + "SERVICE_TYPE_UNSPECIFIED", + "SERVICE_TYPE_MYSQL_SERVICE", + "SERVICE_TYPE_MONGODB_SERVICE", + "SERVICE_TYPE_POSTGRESQL_SERVICE", + "SERVICE_TYPE_VALKEY_SERVICE", + "SERVICE_TYPE_PROXYSQL_SERVICE", + "SERVICE_TYPE_HAPROXY_SERVICE", + "SERVICE_TYPE_EXTERNAL_SERVICE" + ], + "x-order": 6 } } }, @@ -518,6 +665,22 @@ "SESSION_STATUS_DOWN" ], "x-order": 5 + }, + "service_type": { + "description": "ServiceType describes supported Service types.", + "type": "string", + "default": "SERVICE_TYPE_UNSPECIFIED", + "enum": [ + "SERVICE_TYPE_UNSPECIFIED", + "SERVICE_TYPE_MYSQL_SERVICE", + "SERVICE_TYPE_MONGODB_SERVICE", + "SERVICE_TYPE_POSTGRESQL_SERVICE", + "SERVICE_TYPE_VALKEY_SERVICE", + "SERVICE_TYPE_PROXYSQL_SERVICE", + "SERVICE_TYPE_HAPROXY_SERVICE", + "SERVICE_TYPE_EXTERNAL_SERVICE" + ], + "x-order": 6 } }, "x-order": 0 diff --git a/api/realtimeanalytics/v1/query.pb.go b/api/realtimeanalytics/v1/query.pb.go index 43c4a1bdd5c..78f7acfa667 100644 --- a/api/realtimeanalytics/v1/query.pb.go +++ b/api/realtimeanalytics/v1/query.pb.go @@ -135,6 +135,125 @@ func (x *QueryMongoDBData) GetPlanSummary() string { return "" } +// QueryMySQLData holds MySQL-specific Real-Time Analytics query information. +// The data is sourced from the sys.x$processlist view. +type QueryMySQLData struct { + state protoimpl.MessageState `protogen:"open.v1"` + // MySQL instance address(host:port) that processing the query. + DbInstanceAddress string `protobuf:"bytes,1,opt,name=db_instance_address,json=dbInstanceAddress,proto3" json:"db_instance_address,omitempty"` + // Client program name connected to MySQL (program_name from sys.x$processlist). + ProgramName string `protobuf:"bytes,2,opt,name=program_name,json=programName,proto3" json:"program_name,omitempty"` + // Database name (db from sys.x$processlist). + DatabaseName string `protobuf:"bytes,3,opt,name=database_name,json=databaseName,proto3" json:"database_name,omitempty"` + // Command type the connection is executing ("Query", "Execute", etc). + Command string `protobuf:"bytes,4,opt,name=command,proto3" json:"command,omitempty"` + // State of the connection/thread (for example "Sending data"). + State string `protobuf:"bytes,5,opt,name=state,proto3" json:"state,omitempty"` + // MySQL user name associated with the query. + Username string `protobuf:"bytes,6,opt,name=username,proto3" json:"username,omitempty"` + // Number of rows examined by the statement so far. + RowsExamined int64 `protobuf:"varint,7,opt,name=rows_examined,json=rowsExamined,proto3" json:"rows_examined,omitempty"` + // Number of rows sent by the statement so far. + RowsSent int64 `protobuf:"varint,8,opt,name=rows_sent,json=rowsSent,proto3" json:"rows_sent,omitempty"` + // Indicates whether the statement performed a full table scan. + FullScan bool `protobuf:"varint,9,opt,name=full_scan,json=fullScan,proto3" json:"full_scan,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *QueryMySQLData) Reset() { + *x = QueryMySQLData{} + mi := &file_realtimeanalytics_v1_query_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *QueryMySQLData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryMySQLData) ProtoMessage() {} + +func (x *QueryMySQLData) ProtoReflect() protoreflect.Message { + mi := &file_realtimeanalytics_v1_query_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueryMySQLData.ProtoReflect.Descriptor instead. +func (*QueryMySQLData) Descriptor() ([]byte, []int) { + return file_realtimeanalytics_v1_query_proto_rawDescGZIP(), []int{1} +} + +func (x *QueryMySQLData) GetDbInstanceAddress() string { + if x != nil { + return x.DbInstanceAddress + } + return "" +} + +func (x *QueryMySQLData) GetProgramName() string { + if x != nil { + return x.ProgramName + } + return "" +} + +func (x *QueryMySQLData) GetDatabaseName() string { + if x != nil { + return x.DatabaseName + } + return "" +} + +func (x *QueryMySQLData) GetCommand() string { + if x != nil { + return x.Command + } + return "" +} + +func (x *QueryMySQLData) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *QueryMySQLData) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +func (x *QueryMySQLData) GetRowsExamined() int64 { + if x != nil { + return x.RowsExamined + } + return 0 +} + +func (x *QueryMySQLData) GetRowsSent() int64 { + if x != nil { + return x.RowsSent + } + return 0 +} + +func (x *QueryMySQLData) GetFullScan() bool { + if x != nil { + return x.FullScan + } + return false +} + // QueryData represents a single Real-Time Analytics query data point. // It includes general query information and a payload for database-specific details. type QueryData struct { @@ -160,6 +279,7 @@ type QueryData struct { // Types that are valid to be assigned to Payload: // // *QueryData_MongoDbPayload + // *QueryData_MySqlPayload Payload isQueryData_Payload `protobuf_oneof:"payload"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -167,7 +287,7 @@ type QueryData struct { func (x *QueryData) Reset() { *x = QueryData{} - mi := &file_realtimeanalytics_v1_query_proto_msgTypes[1] + mi := &file_realtimeanalytics_v1_query_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -179,7 +299,7 @@ func (x *QueryData) String() string { func (*QueryData) ProtoMessage() {} func (x *QueryData) ProtoReflect() protoreflect.Message { - mi := &file_realtimeanalytics_v1_query_proto_msgTypes[1] + mi := &file_realtimeanalytics_v1_query_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -192,7 +312,7 @@ func (x *QueryData) ProtoReflect() protoreflect.Message { // Deprecated: Use QueryData.ProtoReflect.Descriptor instead. func (*QueryData) Descriptor() ([]byte, []int) { - return file_realtimeanalytics_v1_query_proto_rawDescGZIP(), []int{1} + return file_realtimeanalytics_v1_query_proto_rawDescGZIP(), []int{2} } func (x *QueryData) GetServiceId() string { @@ -267,6 +387,15 @@ func (x *QueryData) GetMongoDbPayload() *QueryMongoDBData { return nil } +func (x *QueryData) GetMySqlPayload() *QueryMySQLData { + if x != nil { + if x, ok := x.Payload.(*QueryData_MySqlPayload); ok { + return x.MySqlPayload + } + } + return nil +} + type isQueryData_Payload interface { isQueryData_Payload() } @@ -276,8 +405,15 @@ type QueryData_MongoDbPayload struct { MongoDbPayload *QueryMongoDBData `protobuf:"bytes,9,opt,name=mongo_db_payload,json=mongoDbPayload,proto3,oneof"` } +type QueryData_MySqlPayload struct { + // MySQL-specific query data. + MySqlPayload *QueryMySQLData `protobuf:"bytes,10,opt,name=my_sql_payload,json=mySqlPayload,proto3,oneof"` +} + func (*QueryData_MongoDbPayload) isQueryData_Payload() {} +func (*QueryData_MySqlPayload) isQueryData_Payload() {} + var File_realtimeanalytics_v1_query_proto protoreflect.FileDescriptor const file_realtimeanalytics_v1_query_proto_rawDesc = "" + @@ -293,7 +429,17 @@ const file_realtimeanalytics_v1_query_proto_rawDesc = "" + "\toperation\x18\x05 \x01(\tR\toperation\x12L\n" + "\x14operation_start_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\x12operationStartTime\x12 \n" + "\busername\x18\a \x01(\tB\x04\x88\xb5\x18\x01R\busername\x12!\n" + - "\fplan_summary\x18\b \x01(\tR\vplanSummary\"\xd2\x03\n" + + "\fplan_summary\x18\b \x01(\tR\vplanSummary\"\xb9\x02\n" + + "\x0eQueryMySQLData\x12.\n" + + "\x13db_instance_address\x18\x01 \x01(\tR\x11dbInstanceAddress\x12!\n" + + "\fprogram_name\x18\x02 \x01(\tR\vprogramName\x12#\n" + + "\rdatabase_name\x18\x03 \x01(\tR\fdatabaseName\x12\x18\n" + + "\acommand\x18\x04 \x01(\tR\acommand\x12\x14\n" + + "\x05state\x18\x05 \x01(\tR\x05state\x12 \n" + + "\busername\x18\x06 \x01(\tB\x04\x88\xb5\x18\x01R\busername\x12#\n" + + "\rrows_examined\x18\a \x01(\x03R\frowsExamined\x12\x1b\n" + + "\trows_sent\x18\b \x01(\x03R\browsSent\x12\x1b\n" + + "\tfull_scan\x18\t \x01(\bR\bfullScan\"\xa0\x04\n" + "\tQueryData\x12\x1d\n" + "\n" + "service_id\x18\x01 \x01(\tR\tserviceId\x12!\n" + @@ -305,7 +451,9 @@ const file_realtimeanalytics_v1_query_proto_rawDesc = "" + "\x18query_execution_duration\x18\x06 \x01(\v2\x19.google.protobuf.DurationR\x16queryExecutionDuration\x12H\n" + "\x12query_collect_time\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\x10queryCollectTime\x12%\n" + "\x0eclient_address\x18\b \x01(\tR\rclientAddress\x12R\n" + - "\x10mongo_db_payload\x18\t \x01(\v2&.realtimeanalytics.v1.QueryMongoDBDataH\x00R\x0emongoDbPayloadB\t\n" + + "\x10mongo_db_payload\x18\t \x01(\v2&.realtimeanalytics.v1.QueryMongoDBDataH\x00R\x0emongoDbPayload\x12L\n" + + "\x0emy_sql_payload\x18\n" + + " \x01(\v2$.realtimeanalytics.v1.QueryMySQLDataH\x00R\fmySqlPayloadB\t\n" + "\apayloadB\xdc\x01\n" + "\x18com.realtimeanalytics.v1B\n" + "QueryProtoP\x01ZCgithub.com/percona/pmm/api/realtimeanalytics/v1;realtimeanalyticsv1\xa2\x02\x03RXX\xaa\x02\x14Realtimeanalytics.V1\xca\x02\x14Realtimeanalytics\\V1\xe2\x02 Realtimeanalytics\\V1\\GPBMetadata\xea\x02\x15Realtimeanalytics::V1b\x06proto3" @@ -323,25 +471,27 @@ func file_realtimeanalytics_v1_query_proto_rawDescGZIP() []byte { } var ( - file_realtimeanalytics_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 2) + file_realtimeanalytics_v1_query_proto_msgTypes = make([]protoimpl.MessageInfo, 3) file_realtimeanalytics_v1_query_proto_goTypes = []any{ (*QueryMongoDBData)(nil), // 0: realtimeanalytics.v1.QueryMongoDBData - (*QueryData)(nil), // 1: realtimeanalytics.v1.QueryData - (*timestamppb.Timestamp)(nil), // 2: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 3: google.protobuf.Duration + (*QueryMySQLData)(nil), // 1: realtimeanalytics.v1.QueryMySQLData + (*QueryData)(nil), // 2: realtimeanalytics.v1.QueryData + (*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 4: google.protobuf.Duration } ) var file_realtimeanalytics_v1_query_proto_depIdxs = []int32{ - 2, // 0: realtimeanalytics.v1.QueryMongoDBData.operation_start_time:type_name -> google.protobuf.Timestamp - 3, // 1: realtimeanalytics.v1.QueryData.query_execution_duration:type_name -> google.protobuf.Duration - 2, // 2: realtimeanalytics.v1.QueryData.query_collect_time:type_name -> google.protobuf.Timestamp + 3, // 0: realtimeanalytics.v1.QueryMongoDBData.operation_start_time:type_name -> google.protobuf.Timestamp + 4, // 1: realtimeanalytics.v1.QueryData.query_execution_duration:type_name -> google.protobuf.Duration + 3, // 2: realtimeanalytics.v1.QueryData.query_collect_time:type_name -> google.protobuf.Timestamp 0, // 3: realtimeanalytics.v1.QueryData.mongo_db_payload:type_name -> realtimeanalytics.v1.QueryMongoDBData - 4, // [4:4] is the sub-list for method output_type - 4, // [4:4] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 1, // 4: realtimeanalytics.v1.QueryData.my_sql_payload:type_name -> realtimeanalytics.v1.QueryMySQLData + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_realtimeanalytics_v1_query_proto_init() } @@ -349,8 +499,9 @@ func file_realtimeanalytics_v1_query_proto_init() { if File_realtimeanalytics_v1_query_proto != nil { return } - file_realtimeanalytics_v1_query_proto_msgTypes[1].OneofWrappers = []any{ + file_realtimeanalytics_v1_query_proto_msgTypes[2].OneofWrappers = []any{ (*QueryData_MongoDbPayload)(nil), + (*QueryData_MySqlPayload)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -358,7 +509,7 @@ func file_realtimeanalytics_v1_query_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_realtimeanalytics_v1_query_proto_rawDesc), len(file_realtimeanalytics_v1_query_proto_rawDesc)), NumEnums: 0, - NumMessages: 2, + NumMessages: 3, NumExtensions: 0, NumServices: 0, }, diff --git a/api/realtimeanalytics/v1/query.pb.validate.go b/api/realtimeanalytics/v1/query.pb.validate.go index af551461acf..7182be95a9d 100644 --- a/api/realtimeanalytics/v1/query.pb.validate.go +++ b/api/realtimeanalytics/v1/query.pb.validate.go @@ -179,6 +179,125 @@ var _ interface { ErrorName() string } = QueryMongoDBDataValidationError{} +// Validate checks the field values on QueryMySQLData with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *QueryMySQLData) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on QueryMySQLData with the rules defined +// in the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in QueryMySQLDataMultiError, +// or nil if none found. +func (m *QueryMySQLData) ValidateAll() error { + return m.validate(true) +} + +func (m *QueryMySQLData) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for DbInstanceAddress + + // no validation rules for ProgramName + + // no validation rules for DatabaseName + + // no validation rules for Command + + // no validation rules for State + + // no validation rules for Username + + // no validation rules for RowsExamined + + // no validation rules for RowsSent + + // no validation rules for FullScan + + if len(errors) > 0 { + return QueryMySQLDataMultiError(errors) + } + + return nil +} + +// QueryMySQLDataMultiError is an error wrapping multiple validation errors +// returned by QueryMySQLData.ValidateAll() if the designated constraints +// aren't met. +type QueryMySQLDataMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m QueryMySQLDataMultiError) Error() string { + msgs := make([]string, 0, len(m)) + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m QueryMySQLDataMultiError) AllErrors() []error { return m } + +// QueryMySQLDataValidationError is the validation error returned by +// QueryMySQLData.Validate if the designated constraints aren't met. +type QueryMySQLDataValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e QueryMySQLDataValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e QueryMySQLDataValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e QueryMySQLDataValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e QueryMySQLDataValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e QueryMySQLDataValidationError) ErrorName() string { return "QueryMySQLDataValidationError" } + +// Error satisfies the builtin error interface +func (e QueryMySQLDataValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sQueryMySQLData.%s: %s%s", + key, + e.field, + e.reason, + cause, + ) +} + +var _ error = QueryMySQLDataValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = QueryMySQLDataValidationError{} + // Validate checks the field values on QueryData with the rules defined in the // proto definition for this message. If any rules are violated, the first // error encountered is returned, or nil if there are no violations. @@ -313,6 +432,47 @@ func (m *QueryData) validate(all bool) error { } } + case *QueryData_MySqlPayload: + if v == nil { + err := QueryDataValidationError{ + field: "Payload", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetMySqlPayload()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, QueryDataValidationError{ + field: "MySqlPayload", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, QueryDataValidationError{ + field: "MySqlPayload", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetMySqlPayload()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return QueryDataValidationError{ + field: "MySqlPayload", + reason: "embedded message failed validation", + cause: err, + } + } + } + default: _ = v // ensures v is used } diff --git a/api/realtimeanalytics/v1/query.proto b/api/realtimeanalytics/v1/query.proto index 7732e321f79..04e018d56ed 100644 --- a/api/realtimeanalytics/v1/query.proto +++ b/api/realtimeanalytics/v1/query.proto @@ -26,6 +26,29 @@ message QueryMongoDBData { string plan_summary = 8; } +// QueryMySQLData holds MySQL-specific Real-Time Analytics query information. +// The data is sourced from the sys.x$processlist view. +message QueryMySQLData { + // MySQL instance address(host:port) that processing the query. + string db_instance_address = 1; + // Client program name connected to MySQL (program_name from sys.x$processlist). + string program_name = 2; + // Database name (db from sys.x$processlist). + string database_name = 3; + // Command type the connection is executing ("Query", "Execute", etc). + string command = 4; + // State of the connection/thread (for example "Sending data"). + string state = 5; + // MySQL user name associated with the query. + string username = 6 [(extensions.v1.sensitive) = REDACT_TYPE_FULL]; + // Number of rows examined by the statement so far. + int64 rows_examined = 7; + // Number of rows sent by the statement so far. + int64 rows_sent = 8; + // Indicates whether the statement performed a full table scan. + bool full_scan = 9; +} + // QueryData represents a single Real-Time Analytics query data point. // It includes general query information and a payload for database-specific details. message QueryData { @@ -49,5 +72,7 @@ message QueryData { oneof payload { // MongoDB-specific query data. QueryMongoDBData mongo_db_payload = 9; + // MySQL-specific query data. + QueryMySQLData my_sql_payload = 10; } } diff --git a/api/realtimeanalytics/v1/realtimeanalytics.pb.go b/api/realtimeanalytics/v1/realtimeanalytics.pb.go index 8dbdbf8ccff..f29867e5e75 100644 --- a/api/realtimeanalytics/v1/realtimeanalytics.pb.go +++ b/api/realtimeanalytics/v1/realtimeanalytics.pb.go @@ -133,6 +133,7 @@ func (x *ListServicesRequest) GetServiceType() v1.ServiceType { type ListServicesResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Mongodb []*v1.MongoDBService `protobuf:"bytes,1,rep,name=mongodb,proto3" json:"mongodb,omitempty"` + Mysql []*v1.MySQLService `protobuf:"bytes,2,rep,name=mysql,proto3" json:"mysql,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -174,6 +175,13 @@ func (x *ListServicesResponse) GetMongodb() []*v1.MongoDBService { return nil } +func (x *ListServicesResponse) GetMysql() []*v1.MySQLService { + if x != nil { + return x.Mysql + } + return nil +} + // Session represents an active Real-Time Analytics session. type Session struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -188,7 +196,10 @@ type Session struct { // Query collect interval. CollectInterval *durationpb.Duration `protobuf:"bytes,5,opt,name=collect_interval,json=collectInterval,proto3" json:"collect_interval,omitempty"` // Current status of the Real-Time Analytics session. - Status SessionStatus `protobuf:"varint,6,opt,name=status,proto3,enum=realtimeanalytics.v1.SessionStatus" json:"status,omitempty"` + Status SessionStatus `protobuf:"varint,6,opt,name=status,proto3,enum=realtimeanalytics.v1.SessionStatus" json:"status,omitempty"` + // Type of the service the session is running for. Lets clients tell MySQL and + // MongoDB sessions apart without a second lookup in the inventory. + ServiceType v1.ServiceType `protobuf:"varint,7,opt,name=service_type,json=serviceType,proto3,enum=inventory.v1.ServiceType" json:"service_type,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -265,6 +276,13 @@ func (x *Session) GetStatus() SessionStatus { return SessionStatus_SESSION_STATUS_UNSPECIFIED } +func (x *Session) GetServiceType() v1.ServiceType { + if x != nil { + return x.ServiceType + } + return v1.ServiceType(0) +} + // ListSessionsRequest contains optional filters for listing active Real-Time Analytics Sessions for a particular cluster. type ListSessionsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -638,9 +656,10 @@ const file_realtimeanalytics_v1_realtimeanalytics_proto_rawDesc = "" + "\n" + ",realtimeanalytics/v1/realtimeanalytics.proto\x12\x14realtimeanalytics.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1binventory/v1/services.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a realtimeanalytics/v1/query.proto\x1a\x17validate/validate.proto\"S\n" + "\x13ListServicesRequest\x12<\n" + - "\fservice_type\x18\x01 \x01(\x0e2\x19.inventory.v1.ServiceTypeR\vserviceType\"N\n" + + "\fservice_type\x18\x01 \x01(\x0e2\x19.inventory.v1.ServiceTypeR\vserviceType\"\x80\x01\n" + "\x14ListServicesResponse\x126\n" + - "\amongodb\x18\x01 \x03(\v2\x1c.inventory.v1.MongoDBServiceR\amongodb\"\xac\x02\n" + + "\amongodb\x18\x01 \x03(\v2\x1c.inventory.v1.MongoDBServiceR\amongodb\x120\n" + + "\x05mysql\x18\x02 \x03(\v2\x1a.inventory.v1.MySQLServiceR\x05mysql\"\xea\x02\n" + "\aSession\x12\x1d\n" + "\n" + "service_id\x18\x01 \x01(\tR\tserviceId\x12!\n" + @@ -649,7 +668,8 @@ const file_realtimeanalytics_v1_realtimeanalytics_proto_rawDesc = "" + "\n" + "start_time\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\tstartTime\x12D\n" + "\x10collect_interval\x18\x05 \x01(\v2\x19.google.protobuf.DurationR\x0fcollectInterval\x12;\n" + - "\x06status\x18\x06 \x01(\x0e2#.realtimeanalytics.v1.SessionStatusR\x06status\"8\n" + + "\x06status\x18\x06 \x01(\x0e2#.realtimeanalytics.v1.SessionStatusR\x06status\x12<\n" + + "\fservice_type\x18\a \x01(\x0e2\x19.inventory.v1.ServiceTypeR\vserviceType\"8\n" + "\x13ListSessionsRequest\x12!\n" + "\fcluster_name\x18\x01 \x01(\tR\vclusterName\"Q\n" + "\x14ListSessionsResponse\x129\n" + @@ -713,36 +733,39 @@ var ( (*SearchQueriesResponse)(nil), // 11: realtimeanalytics.v1.SearchQueriesResponse v1.ServiceType(0), // 12: inventory.v1.ServiceType (*v1.MongoDBService)(nil), // 13: inventory.v1.MongoDBService - (*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 15: google.protobuf.Duration - (*QueryData)(nil), // 16: realtimeanalytics.v1.QueryData + (*v1.MySQLService)(nil), // 14: inventory.v1.MySQLService + (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 16: google.protobuf.Duration + (*QueryData)(nil), // 17: realtimeanalytics.v1.QueryData } ) var file_realtimeanalytics_v1_realtimeanalytics_proto_depIdxs = []int32{ 12, // 0: realtimeanalytics.v1.ListServicesRequest.service_type:type_name -> inventory.v1.ServiceType 13, // 1: realtimeanalytics.v1.ListServicesResponse.mongodb:type_name -> inventory.v1.MongoDBService - 14, // 2: realtimeanalytics.v1.Session.start_time:type_name -> google.protobuf.Timestamp - 15, // 3: realtimeanalytics.v1.Session.collect_interval:type_name -> google.protobuf.Duration - 0, // 4: realtimeanalytics.v1.Session.status:type_name -> realtimeanalytics.v1.SessionStatus - 3, // 5: realtimeanalytics.v1.ListSessionsResponse.sessions:type_name -> realtimeanalytics.v1.Session - 3, // 6: realtimeanalytics.v1.StartSessionResponse.session:type_name -> realtimeanalytics.v1.Session - 16, // 7: realtimeanalytics.v1.SearchQueriesResponse.queries:type_name -> realtimeanalytics.v1.QueryData - 1, // 8: realtimeanalytics.v1.RealtimeAnalyticsService.ListServices:input_type -> realtimeanalytics.v1.ListServicesRequest - 4, // 9: realtimeanalytics.v1.RealtimeAnalyticsService.ListSessions:input_type -> realtimeanalytics.v1.ListSessionsRequest - 6, // 10: realtimeanalytics.v1.RealtimeAnalyticsService.StartSession:input_type -> realtimeanalytics.v1.StartSessionRequest - 8, // 11: realtimeanalytics.v1.RealtimeAnalyticsService.StopSession:input_type -> realtimeanalytics.v1.StopSessionRequest - 10, // 12: realtimeanalytics.v1.RealtimeAnalyticsService.SearchQueries:input_type -> realtimeanalytics.v1.SearchQueriesRequest - 2, // 13: realtimeanalytics.v1.RealtimeAnalyticsService.ListServices:output_type -> realtimeanalytics.v1.ListServicesResponse - 5, // 14: realtimeanalytics.v1.RealtimeAnalyticsService.ListSessions:output_type -> realtimeanalytics.v1.ListSessionsResponse - 7, // 15: realtimeanalytics.v1.RealtimeAnalyticsService.StartSession:output_type -> realtimeanalytics.v1.StartSessionResponse - 9, // 16: realtimeanalytics.v1.RealtimeAnalyticsService.StopSession:output_type -> realtimeanalytics.v1.StopSessionResponse - 11, // 17: realtimeanalytics.v1.RealtimeAnalyticsService.SearchQueries:output_type -> realtimeanalytics.v1.SearchQueriesResponse - 13, // [13:18] is the sub-list for method output_type - 8, // [8:13] 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 + 14, // 2: realtimeanalytics.v1.ListServicesResponse.mysql:type_name -> inventory.v1.MySQLService + 15, // 3: realtimeanalytics.v1.Session.start_time:type_name -> google.protobuf.Timestamp + 16, // 4: realtimeanalytics.v1.Session.collect_interval:type_name -> google.protobuf.Duration + 0, // 5: realtimeanalytics.v1.Session.status:type_name -> realtimeanalytics.v1.SessionStatus + 12, // 6: realtimeanalytics.v1.Session.service_type:type_name -> inventory.v1.ServiceType + 3, // 7: realtimeanalytics.v1.ListSessionsResponse.sessions:type_name -> realtimeanalytics.v1.Session + 3, // 8: realtimeanalytics.v1.StartSessionResponse.session:type_name -> realtimeanalytics.v1.Session + 17, // 9: realtimeanalytics.v1.SearchQueriesResponse.queries:type_name -> realtimeanalytics.v1.QueryData + 1, // 10: realtimeanalytics.v1.RealtimeAnalyticsService.ListServices:input_type -> realtimeanalytics.v1.ListServicesRequest + 4, // 11: realtimeanalytics.v1.RealtimeAnalyticsService.ListSessions:input_type -> realtimeanalytics.v1.ListSessionsRequest + 6, // 12: realtimeanalytics.v1.RealtimeAnalyticsService.StartSession:input_type -> realtimeanalytics.v1.StartSessionRequest + 8, // 13: realtimeanalytics.v1.RealtimeAnalyticsService.StopSession:input_type -> realtimeanalytics.v1.StopSessionRequest + 10, // 14: realtimeanalytics.v1.RealtimeAnalyticsService.SearchQueries:input_type -> realtimeanalytics.v1.SearchQueriesRequest + 2, // 15: realtimeanalytics.v1.RealtimeAnalyticsService.ListServices:output_type -> realtimeanalytics.v1.ListServicesResponse + 5, // 16: realtimeanalytics.v1.RealtimeAnalyticsService.ListSessions:output_type -> realtimeanalytics.v1.ListSessionsResponse + 7, // 17: realtimeanalytics.v1.RealtimeAnalyticsService.StartSession:output_type -> realtimeanalytics.v1.StartSessionResponse + 9, // 18: realtimeanalytics.v1.RealtimeAnalyticsService.StopSession:output_type -> realtimeanalytics.v1.StopSessionResponse + 11, // 19: realtimeanalytics.v1.RealtimeAnalyticsService.SearchQueries:output_type -> realtimeanalytics.v1.SearchQueriesResponse + 15, // [15:20] is the sub-list for method output_type + 10, // [10:15] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_realtimeanalytics_v1_realtimeanalytics_proto_init() } diff --git a/api/realtimeanalytics/v1/realtimeanalytics.pb.validate.go b/api/realtimeanalytics/v1/realtimeanalytics.pb.validate.go index f392e0a0102..071912ab7b6 100644 --- a/api/realtimeanalytics/v1/realtimeanalytics.pb.validate.go +++ b/api/realtimeanalytics/v1/realtimeanalytics.pb.validate.go @@ -200,6 +200,40 @@ func (m *ListServicesResponse) validate(all bool) error { } + for idx, item := range m.GetMysql() { + _, _ = idx, item + + if all { + switch v := interface{}(item).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ListServicesResponseValidationError{ + field: fmt.Sprintf("Mysql[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ListServicesResponseValidationError{ + field: fmt.Sprintf("Mysql[%v]", idx), + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(item).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ListServicesResponseValidationError{ + field: fmt.Sprintf("Mysql[%v]", idx), + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + if len(errors) > 0 { return ListServicesResponseMultiError(errors) } @@ -368,6 +402,8 @@ func (m *Session) validate(all bool) error { // no validation rules for Status + // no validation rules for ServiceType + if len(errors) > 0 { return SessionMultiError(errors) } diff --git a/api/realtimeanalytics/v1/realtimeanalytics.proto b/api/realtimeanalytics/v1/realtimeanalytics.proto index 3926de3f866..eca473c58df 100644 --- a/api/realtimeanalytics/v1/realtimeanalytics.proto +++ b/api/realtimeanalytics/v1/realtimeanalytics.proto @@ -19,6 +19,7 @@ message ListServicesRequest { message ListServicesResponse { repeated inventory.v1.MongoDBService mongodb = 1; + repeated inventory.v1.MySQLService mysql = 2; } // Session related messages @@ -48,6 +49,9 @@ message Session { google.protobuf.Duration collect_interval = 5; // Current status of the Real-Time Analytics session. SessionStatus status = 6; + // Type of the service the session is running for. Lets clients tell MySQL and + // MongoDB sessions apart without a second lookup in the inventory. + inventory.v1.ServiceType service_type = 7; } // ListSessionsRequest contains optional filters for listing active Real-Time Analytics Sessions for a particular cluster. diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index ac4a6f1a126..7b370824c0c 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -5409,7 +5409,8 @@ "AGENT_TYPE_RDS_EXPORTER", "AGENT_TYPE_AZURE_DATABASE_EXPORTER", "AGENT_TYPE_NOMAD_AGENT", - "AGENT_TYPE_RTA_MONGODB_AGENT" + "AGENT_TYPE_RTA_MONGODB_AGENT", + "AGENT_TYPE_RTA_MYSQL_AGENT" ], "type": "string", "default": "AGENT_TYPE_UNSPECIFIED", @@ -7553,6 +7554,102 @@ } }, "x-order": 18 + }, + "rta_mysql_agent": { + "type": "array", + "items": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + } + }, + "x-order": 19 } } } @@ -9154,6 +9251,97 @@ } }, "x-order": 16 + }, + "rta_mysql_agent": { + "type": "object", + "properties": { + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 0 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 1 + }, + "username": { + "description": "MySQL username for getting queries data.", + "type": "string", + "x-order": 2 + }, + "password": { + "description": "MySQL password for getting queries data.", + "type": "string", + "x-order": 3 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 4 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 5 + }, + "tls": { + "description": "MySQL specific options.\nUse TLS for database connections.", + "type": "boolean", + "x-order": 6 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 7 + }, + "tls_ca": { + "description": "Certificate Authority certificate chain.", + "type": "string", + "x-order": 8 + }, + "tls_cert": { + "description": "Client certificate.", + "type": "string", + "x-order": 9 + }, + "tls_key": { + "description": "Client key.", + "type": "string", + "x-order": 10 + }, + "skip_connection_check": { + "description": "Skip connection check.", + "type": "boolean", + "x-order": 11 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 12 + } + }, + "x-order": 17 } } } @@ -11145,6 +11333,99 @@ } }, "x-order": 16 + }, + "rta_mysql_agent": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + }, + "x-order": 17 } } } @@ -13278,6 +13559,99 @@ } }, "x-order": 18 + }, + "rta_mysql_agent": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + }, + "x-order": 19 } } } @@ -15290,23 +15664,133 @@ "LOG_LEVEL_DEBUG" ], "x-nullable": true, - "x-order": 14 - }, - "connection_timeout": { - "description": "Connection timeout for exporter (if set).", - "type": "string", - "x-order": 15 + "x-order": 14 + }, + "connection_timeout": { + "description": "Connection timeout for exporter (if set).", + "type": "string", + "x-order": 15 + }, + "skip_connection_check": { + "description": "Skip connection check.", + "type": "boolean", + "x-nullable": true, + "x-order": 16 + } + }, + "x-order": 15 + }, + "rta_mongodb_agent": { + "type": "object", + "properties": { + "enable": { + "description": "Enable this Agent. Agents are enabled by default when they get added.", + "type": "boolean", + "x-nullable": true, + "x-order": 0 + }, + "custom_labels": { + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", + "type": "object", + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } + }, + "x-nullable": true, + "x-order": 1 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-nullable": true, + "x-order": 2 + }, + "username": { + "description": "MongoDB username for getting profile data.", + "type": "string", + "x-nullable": true, + "x-order": 3 + }, + "password": { + "description": "MongoDB password for getting profile data.", + "type": "string", + "x-nullable": true, + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-nullable": true, + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-nullable": true, + "x-order": 6 + }, + "tls_certificate_key": { + "description": "Client certificate and key.", + "type": "string", + "x-nullable": true, + "x-order": 7 + }, + "tls_certificate_key_file_password": { + "description": "Password for decrypting tls_certificate_key.", + "type": "string", + "x-nullable": true, + "x-order": 8 + }, + "tls_ca": { + "description": "Certificate Authority certificate chain.", + "type": "string", + "x-nullable": true, + "x-order": 9 + }, + "authentication_mechanism": { + "description": "Authentication mechanism.", + "type": "string", + "x-nullable": true, + "x-order": 10 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-nullable": true, + "x-order": 11 }, "skip_connection_check": { "description": "Skip connection check.", "type": "boolean", "x-nullable": true, - "x-order": 16 + "x-order": 12 } }, - "x-order": 15 + "x-order": 16 }, - "rta_mongodb_agent": { + "rta_mysql_agent": { "type": "object", "properties": { "enable": { @@ -15347,13 +15831,13 @@ "x-order": 2 }, "username": { - "description": "MongoDB username for getting profile data.", + "description": "MySQL username for getting queries data.", "type": "string", "x-nullable": true, "x-order": 3 }, "password": { - "description": "MongoDB password for getting profile data.", + "description": "MySQL password for getting queries data.", "type": "string", "x-nullable": true, "x-order": 4 @@ -15370,30 +15854,24 @@ "x-nullable": true, "x-order": 6 }, - "tls_certificate_key": { - "description": "Client certificate and key.", + "tls_ca": { + "description": "Certificate Authority certificate chain.", "type": "string", "x-nullable": true, "x-order": 7 }, - "tls_certificate_key_file_password": { - "description": "Password for decrypting tls_certificate_key.", + "tls_cert": { + "description": "Client certificate.", "type": "string", "x-nullable": true, "x-order": 8 }, - "tls_ca": { - "description": "Certificate Authority certificate chain.", + "tls_key": { + "description": "Client key.", "type": "string", "x-nullable": true, "x-order": 9 }, - "authentication_mechanism": { - "description": "Authentication mechanism.", - "type": "string", - "x-nullable": true, - "x-order": 10 - }, "rta_options": { "description": "RTAOptions holds Real-Time Query Analytics agent options.", "type": "object", @@ -15405,16 +15883,16 @@ } }, "x-nullable": true, - "x-order": 11 + "x-order": 10 }, "skip_connection_check": { "description": "Skip connection check.", "type": "boolean", "x-nullable": true, - "x-order": 12 + "x-order": 11 } }, - "x-order": 16 + "x-order": 17 } } } @@ -17419,6 +17897,99 @@ } }, "x-order": 16 + }, + "rta_mysql_agent": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + }, + "x-order": 17 } } } @@ -31656,6 +32227,60 @@ } }, "x-order": 8 + }, + "my_sql_payload": { + "description": "QueryMySQLData holds MySQL-specific Real-Time Analytics query information.\nThe data is sourced from the sys.x$processlist view.", + "type": "object", + "properties": { + "db_instance_address": { + "description": "MySQL instance address(host:port) that processing the query.", + "type": "string", + "x-order": 0 + }, + "program_name": { + "description": "Client program name connected to MySQL (program_name from sys.x$processlist).", + "type": "string", + "x-order": 1 + }, + "database_name": { + "description": "Database name (db from sys.x$processlist).", + "type": "string", + "x-order": 2 + }, + "command": { + "description": "Command type the connection is executing (\"Query\", \"Execute\", etc).", + "type": "string", + "x-order": 3 + }, + "state": { + "description": "State of the connection/thread (for example \"Sending data\").", + "type": "string", + "x-order": 4 + }, + "username": { + "description": "MySQL user name associated with the query.", + "type": "string", + "x-order": 5 + }, + "rows_examined": { + "description": "Number of rows examined by the statement so far.", + "type": "string", + "format": "int64", + "x-order": 6 + }, + "rows_sent": { + "description": "Number of rows sent by the statement so far.", + "type": "string", + "format": "int64", + "x-order": 7 + }, + "full_scan": { + "description": "Indicates whether the statement performed a full table scan.", + "type": "boolean", + "x-order": 8 + } + }, + "x-order": 9 } } }, @@ -31799,6 +32424,83 @@ } }, "x-order": 0 + }, + "mysql": { + "type": "array", + "items": { + "description": "MySQLService represents a generic MySQL instance.", + "type": "object", + "properties": { + "service_id": { + "description": "Unique randomly generated instance identifier.", + "type": "string", + "x-order": 0 + }, + "service_name": { + "description": "Unique across all Services user-defined name.", + "type": "string", + "x-order": 1 + }, + "node_id": { + "description": "Node identifier where this instance runs.", + "type": "string", + "x-order": 2 + }, + "address": { + "description": "Access address (DNS name or IP).\nAddress (and port) or socket is required.", + "type": "string", + "x-order": 3 + }, + "port": { + "description": "Access port.\nPort is required when the address present.", + "type": "integer", + "format": "int64", + "x-order": 4 + }, + "socket": { + "description": "Access unix socket.\nAddress (and port) or socket is required.", + "type": "string", + "x-order": 5 + }, + "environment": { + "description": "Environment name.", + "type": "string", + "x-order": 6 + }, + "cluster": { + "description": "Cluster name.", + "type": "string", + "x-order": 7 + }, + "replication_set": { + "description": "Replication set name.", + "type": "string", + "x-order": 8 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 9 + }, + "version": { + "description": "MySQL version.", + "type": "string", + "x-order": 10 + }, + "extra_dsn_params": { + "description": "Extra parameters to be added to the DSN.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 11 + } + } + }, + "x-order": 1 } } } @@ -31904,6 +32606,22 @@ "SESSION_STATUS_DOWN" ], "x-order": 5 + }, + "service_type": { + "description": "ServiceType describes supported Service types.", + "type": "string", + "default": "SERVICE_TYPE_UNSPECIFIED", + "enum": [ + "SERVICE_TYPE_UNSPECIFIED", + "SERVICE_TYPE_MYSQL_SERVICE", + "SERVICE_TYPE_MONGODB_SERVICE", + "SERVICE_TYPE_POSTGRESQL_SERVICE", + "SERVICE_TYPE_VALKEY_SERVICE", + "SERVICE_TYPE_PROXYSQL_SERVICE", + "SERVICE_TYPE_HAPROXY_SERVICE", + "SERVICE_TYPE_EXTERNAL_SERVICE" + ], + "x-order": 6 } } }, @@ -32021,6 +32739,22 @@ "SESSION_STATUS_DOWN" ], "x-order": 5 + }, + "service_type": { + "description": "ServiceType describes supported Service types.", + "type": "string", + "default": "SERVICE_TYPE_UNSPECIFIED", + "enum": [ + "SERVICE_TYPE_UNSPECIFIED", + "SERVICE_TYPE_MYSQL_SERVICE", + "SERVICE_TYPE_MONGODB_SERVICE", + "SERVICE_TYPE_POSTGRESQL_SERVICE", + "SERVICE_TYPE_VALKEY_SERVICE", + "SERVICE_TYPE_PROXYSQL_SERVICE", + "SERVICE_TYPE_HAPROXY_SERVICE", + "SERVICE_TYPE_EXTERNAL_SERVICE" + ], + "x-order": 6 } }, "x-order": 0 diff --git a/api/swagger/swagger.json b/api/swagger/swagger.json index c40c51e6c46..6e7282d5e16 100644 --- a/api/swagger/swagger.json +++ b/api/swagger/swagger.json @@ -4436,7 +4436,8 @@ "AGENT_TYPE_RDS_EXPORTER", "AGENT_TYPE_AZURE_DATABASE_EXPORTER", "AGENT_TYPE_NOMAD_AGENT", - "AGENT_TYPE_RTA_MONGODB_AGENT" + "AGENT_TYPE_RTA_MONGODB_AGENT", + "AGENT_TYPE_RTA_MYSQL_AGENT" ], "type": "string", "default": "AGENT_TYPE_UNSPECIFIED", @@ -6580,6 +6581,102 @@ } }, "x-order": 18 + }, + "rta_mysql_agent": { + "type": "array", + "items": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + } + }, + "x-order": 19 } } } @@ -8181,6 +8278,97 @@ } }, "x-order": 16 + }, + "rta_mysql_agent": { + "type": "object", + "properties": { + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 0 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 1 + }, + "username": { + "description": "MySQL username for getting queries data.", + "type": "string", + "x-order": 2 + }, + "password": { + "description": "MySQL password for getting queries data.", + "type": "string", + "x-order": 3 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 4 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 5 + }, + "tls": { + "description": "MySQL specific options.\nUse TLS for database connections.", + "type": "boolean", + "x-order": 6 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 7 + }, + "tls_ca": { + "description": "Certificate Authority certificate chain.", + "type": "string", + "x-order": 8 + }, + "tls_cert": { + "description": "Client certificate.", + "type": "string", + "x-order": 9 + }, + "tls_key": { + "description": "Client key.", + "type": "string", + "x-order": 10 + }, + "skip_connection_check": { + "description": "Skip connection check.", + "type": "boolean", + "x-order": 11 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 12 + } + }, + "x-order": 17 } } } @@ -10172,6 +10360,99 @@ } }, "x-order": 16 + }, + "rta_mysql_agent": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + }, + "x-order": 17 } } } @@ -12305,6 +12586,99 @@ } }, "x-order": 18 + }, + "rta_mysql_agent": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + }, + "x-order": 19 } } } @@ -14317,23 +14691,133 @@ "LOG_LEVEL_DEBUG" ], "x-nullable": true, - "x-order": 14 - }, - "connection_timeout": { - "description": "Connection timeout for exporter (if set).", - "type": "string", - "x-order": 15 + "x-order": 14 + }, + "connection_timeout": { + "description": "Connection timeout for exporter (if set).", + "type": "string", + "x-order": 15 + }, + "skip_connection_check": { + "description": "Skip connection check.", + "type": "boolean", + "x-nullable": true, + "x-order": 16 + } + }, + "x-order": 15 + }, + "rta_mongodb_agent": { + "type": "object", + "properties": { + "enable": { + "description": "Enable this Agent. Agents are enabled by default when they get added.", + "type": "boolean", + "x-nullable": true, + "x-order": 0 + }, + "custom_labels": { + "description": "A wrapper for map[string]string. This type allows to distinguish between an empty map and a null value.", + "type": "object", + "properties": { + "values": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 0 + } + }, + "x-nullable": true, + "x-order": 1 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-nullable": true, + "x-order": 2 + }, + "username": { + "description": "MongoDB username for getting profile data.", + "type": "string", + "x-nullable": true, + "x-order": 3 + }, + "password": { + "description": "MongoDB password for getting profile data.", + "type": "string", + "x-nullable": true, + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-nullable": true, + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-nullable": true, + "x-order": 6 + }, + "tls_certificate_key": { + "description": "Client certificate and key.", + "type": "string", + "x-nullable": true, + "x-order": 7 + }, + "tls_certificate_key_file_password": { + "description": "Password for decrypting tls_certificate_key.", + "type": "string", + "x-nullable": true, + "x-order": 8 + }, + "tls_ca": { + "description": "Certificate Authority certificate chain.", + "type": "string", + "x-nullable": true, + "x-order": 9 + }, + "authentication_mechanism": { + "description": "Authentication mechanism.", + "type": "string", + "x-nullable": true, + "x-order": 10 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-nullable": true, + "x-order": 11 }, "skip_connection_check": { "description": "Skip connection check.", "type": "boolean", "x-nullable": true, - "x-order": 16 + "x-order": 12 } }, - "x-order": 15 + "x-order": 16 }, - "rta_mongodb_agent": { + "rta_mysql_agent": { "type": "object", "properties": { "enable": { @@ -14374,13 +14858,13 @@ "x-order": 2 }, "username": { - "description": "MongoDB username for getting profile data.", + "description": "MySQL username for getting queries data.", "type": "string", "x-nullable": true, "x-order": 3 }, "password": { - "description": "MongoDB password for getting profile data.", + "description": "MySQL password for getting queries data.", "type": "string", "x-nullable": true, "x-order": 4 @@ -14397,30 +14881,24 @@ "x-nullable": true, "x-order": 6 }, - "tls_certificate_key": { - "description": "Client certificate and key.", + "tls_ca": { + "description": "Certificate Authority certificate chain.", "type": "string", "x-nullable": true, "x-order": 7 }, - "tls_certificate_key_file_password": { - "description": "Password for decrypting tls_certificate_key.", + "tls_cert": { + "description": "Client certificate.", "type": "string", "x-nullable": true, "x-order": 8 }, - "tls_ca": { - "description": "Certificate Authority certificate chain.", + "tls_key": { + "description": "Client key.", "type": "string", "x-nullable": true, "x-order": 9 }, - "authentication_mechanism": { - "description": "Authentication mechanism.", - "type": "string", - "x-nullable": true, - "x-order": 10 - }, "rta_options": { "description": "RTAOptions holds Real-Time Query Analytics agent options.", "type": "object", @@ -14432,16 +14910,16 @@ } }, "x-nullable": true, - "x-order": 11 + "x-order": 10 }, "skip_connection_check": { "description": "Skip connection check.", "type": "boolean", "x-nullable": true, - "x-order": 12 + "x-order": 11 } }, - "x-order": 16 + "x-order": 17 } } } @@ -16446,6 +16924,99 @@ } }, "x-order": 16 + }, + "rta_mysql_agent": { + "description": "RTAMySQLAgent runs within pmm-agent and sends MySQL Real-Time Query Analytics data to the PMM Server.", + "type": "object", + "properties": { + "agent_id": { + "description": "Unique agent identifier.", + "type": "string", + "x-order": 0 + }, + "pmm_agent_id": { + "description": "The pmm-agent identifier which runs this instance.", + "type": "string", + "x-order": 1 + }, + "disabled": { + "description": "Desired Agent status: enabled (false) or disabled (true).", + "type": "boolean", + "x-order": 2 + }, + "service_id": { + "description": "Service identifier.", + "type": "string", + "x-order": 3 + }, + "username": { + "description": "MySQL username for getting the currently running queries.", + "type": "string", + "x-order": 4 + }, + "tls": { + "description": "Use TLS for database connections.", + "type": "boolean", + "x-order": 5 + }, + "tls_skip_verify": { + "description": "Skip TLS certificate and hostname validation.", + "type": "boolean", + "x-order": 6 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 7 + }, + "rta_options": { + "description": "RTAOptions holds Real-Time Query Analytics agent options.", + "type": "object", + "properties": { + "collect_interval": { + "description": "Query collect interval (default 2s is set by server).", + "type": "string", + "x-order": 0 + } + }, + "x-order": 8 + }, + "status": { + "description": "AgentStatus represents actual Agent status.\n\n - AGENT_STATUS_STARTING: Agent is starting.\n - AGENT_STATUS_INITIALIZATION_ERROR: Agent encountered error when starting.\n - AGENT_STATUS_RUNNING: Agent is running.\n - AGENT_STATUS_WAITING: Agent encountered error and will be restarted automatically soon.\n - AGENT_STATUS_STOPPING: Agent is stopping.\n - AGENT_STATUS_DONE: Agent has been stopped or disabled.\n - AGENT_STATUS_UNKNOWN: Agent is not connected, we don't know anything about it's state.", + "type": "string", + "default": "AGENT_STATUS_UNSPECIFIED", + "enum": [ + "AGENT_STATUS_UNSPECIFIED", + "AGENT_STATUS_STARTING", + "AGENT_STATUS_INITIALIZATION_ERROR", + "AGENT_STATUS_RUNNING", + "AGENT_STATUS_WAITING", + "AGENT_STATUS_STOPPING", + "AGENT_STATUS_DONE", + "AGENT_STATUS_UNKNOWN" + ], + "x-order": 9 + }, + "log_level": { + "description": "- LOG_LEVEL_UNSPECIFIED: Auto", + "type": "string", + "title": "Log level for exporters", + "default": "LOG_LEVEL_UNSPECIFIED", + "enum": [ + "LOG_LEVEL_UNSPECIFIED", + "LOG_LEVEL_FATAL", + "LOG_LEVEL_ERROR", + "LOG_LEVEL_WARN", + "LOG_LEVEL_INFO", + "LOG_LEVEL_DEBUG" + ], + "x-order": 10 + } + }, + "x-order": 17 } } } @@ -30683,6 +31254,60 @@ } }, "x-order": 8 + }, + "my_sql_payload": { + "description": "QueryMySQLData holds MySQL-specific Real-Time Analytics query information.\nThe data is sourced from the sys.x$processlist view.", + "type": "object", + "properties": { + "db_instance_address": { + "description": "MySQL instance address(host:port) that processing the query.", + "type": "string", + "x-order": 0 + }, + "program_name": { + "description": "Client program name connected to MySQL (program_name from sys.x$processlist).", + "type": "string", + "x-order": 1 + }, + "database_name": { + "description": "Database name (db from sys.x$processlist).", + "type": "string", + "x-order": 2 + }, + "command": { + "description": "Command type the connection is executing (\"Query\", \"Execute\", etc).", + "type": "string", + "x-order": 3 + }, + "state": { + "description": "State of the connection/thread (for example \"Sending data\").", + "type": "string", + "x-order": 4 + }, + "username": { + "description": "MySQL user name associated with the query.", + "type": "string", + "x-order": 5 + }, + "rows_examined": { + "description": "Number of rows examined by the statement so far.", + "type": "string", + "format": "int64", + "x-order": 6 + }, + "rows_sent": { + "description": "Number of rows sent by the statement so far.", + "type": "string", + "format": "int64", + "x-order": 7 + }, + "full_scan": { + "description": "Indicates whether the statement performed a full table scan.", + "type": "boolean", + "x-order": 8 + } + }, + "x-order": 9 } } }, @@ -30826,6 +31451,83 @@ } }, "x-order": 0 + }, + "mysql": { + "type": "array", + "items": { + "description": "MySQLService represents a generic MySQL instance.", + "type": "object", + "properties": { + "service_id": { + "description": "Unique randomly generated instance identifier.", + "type": "string", + "x-order": 0 + }, + "service_name": { + "description": "Unique across all Services user-defined name.", + "type": "string", + "x-order": 1 + }, + "node_id": { + "description": "Node identifier where this instance runs.", + "type": "string", + "x-order": 2 + }, + "address": { + "description": "Access address (DNS name or IP).\nAddress (and port) or socket is required.", + "type": "string", + "x-order": 3 + }, + "port": { + "description": "Access port.\nPort is required when the address present.", + "type": "integer", + "format": "int64", + "x-order": 4 + }, + "socket": { + "description": "Access unix socket.\nAddress (and port) or socket is required.", + "type": "string", + "x-order": 5 + }, + "environment": { + "description": "Environment name.", + "type": "string", + "x-order": 6 + }, + "cluster": { + "description": "Cluster name.", + "type": "string", + "x-order": 7 + }, + "replication_set": { + "description": "Replication set name.", + "type": "string", + "x-order": 8 + }, + "custom_labels": { + "description": "Custom user-assigned labels.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 9 + }, + "version": { + "description": "MySQL version.", + "type": "string", + "x-order": 10 + }, + "extra_dsn_params": { + "description": "Extra parameters to be added to the DSN.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-order": 11 + } + } + }, + "x-order": 1 } } } @@ -30931,6 +31633,22 @@ "SESSION_STATUS_DOWN" ], "x-order": 5 + }, + "service_type": { + "description": "ServiceType describes supported Service types.", + "type": "string", + "default": "SERVICE_TYPE_UNSPECIFIED", + "enum": [ + "SERVICE_TYPE_UNSPECIFIED", + "SERVICE_TYPE_MYSQL_SERVICE", + "SERVICE_TYPE_MONGODB_SERVICE", + "SERVICE_TYPE_POSTGRESQL_SERVICE", + "SERVICE_TYPE_VALKEY_SERVICE", + "SERVICE_TYPE_PROXYSQL_SERVICE", + "SERVICE_TYPE_HAPROXY_SERVICE", + "SERVICE_TYPE_EXTERNAL_SERVICE" + ], + "x-order": 6 } } }, @@ -31048,6 +31766,22 @@ "SESSION_STATUS_DOWN" ], "x-order": 5 + }, + "service_type": { + "description": "ServiceType describes supported Service types.", + "type": "string", + "default": "SERVICE_TYPE_UNSPECIFIED", + "enum": [ + "SERVICE_TYPE_UNSPECIFIED", + "SERVICE_TYPE_MYSQL_SERVICE", + "SERVICE_TYPE_MONGODB_SERVICE", + "SERVICE_TYPE_POSTGRESQL_SERVICE", + "SERVICE_TYPE_VALKEY_SERVICE", + "SERVICE_TYPE_PROXYSQL_SERVICE", + "SERVICE_TYPE_HAPROXY_SERVICE", + "SERVICE_TYPE_EXTERNAL_SERVICE" + ], + "x-order": 6 } }, "x-order": 0 diff --git a/managed/models/agent_helpers.go b/managed/models/agent_helpers.go index 20da2a24104..15282879747 100644 --- a/managed/models/agent_helpers.go +++ b/managed/models/agent_helpers.go @@ -358,6 +358,7 @@ func FindDBConfigForService(q *reform.Querier, serviceID string) (*DBConfig, err MySQLdExporterType, QANMySQLSlowlogAgentType, QANMySQLPerfSchemaAgentType, + RTAMySQLAgentType, } case PostgreSQLServiceType: agentTypes = []AgentType{ @@ -880,6 +881,9 @@ func compatibleServiceAndAgent(serviceType ServiceType, agentType AgentType) boo RTAMongoDBAgentType: { MongoDBServiceType, }, + RTAMySQLAgentType: { + MySQLServiceType, + }, PostgresExporterType: { PostgreSQLServiceType, }, @@ -986,8 +990,8 @@ func CreateAgent(q *reform.Querier, agentType AgentType, params *CreateAgentPara } switch agentType { - // For the time being only RTA MangoDB Agent has RTA options. - case RTAMongoDBAgentType: + // RTA agents collect currently running queries on a fixed interval. + case RTAMongoDBAgentType, RTAMySQLAgentType: row.RTAOptions = RTAOptions{ // default value CollectInterval: new(2 * time.Second), //nolint:mnd diff --git a/managed/models/agent_model.go b/managed/models/agent_model.go index 13e574b6bd9..86749d3b8fd 100644 --- a/managed/models/agent_model.go +++ b/managed/models/agent_model.go @@ -82,12 +82,14 @@ const ( NomadAgentType AgentType = "nomad-agent" ValkeyExporterType AgentType = "valkey_exporter" RTAMongoDBAgentType AgentType = "rta-mongodb-agent" + RTAMySQLAgentType AgentType = "rta-mysql-agent" ) // GetRTAAgentTypes returns all Real-Time Analytics Agent types. func GetRTAAgentTypes() []AgentType { return []AgentType{ RTAMongoDBAgentType, + RTAMySQLAgentType, // Add more types here once they are implemented. } } @@ -588,7 +590,7 @@ func (a *Agent) DSN(service *Service, dsnParams DSNParams, tdp *DelimiterPair, p return cfg.FormatDSN() - case QANMySQLPerfSchemaAgentType, QANMySQLSlowlogAgentType: + case QANMySQLPerfSchemaAgentType, QANMySQLSlowlogAgentType, RTAMySQLAgentType: cfg := mysql.NewConfig() cfg.User = username cfg.Passwd = password @@ -900,7 +902,7 @@ func (a *Agent) IsMySQLTablestatsGroupEnabled() bool { // Files returns files map required to connect to DB. func (a Agent) Files() map[string]string { //nolint:gocognit switch a.AgentType { - case MySQLdExporterType, QANMySQLPerfSchemaAgentType, QANMySQLSlowlogAgentType: + case MySQLdExporterType, QANMySQLPerfSchemaAgentType, QANMySQLSlowlogAgentType, RTAMySQLAgentType: files := make(map[string]string) if a.MySQLOptions.TLSCa != "" { files["tlsCa"] = a.MySQLOptions.TLSCa diff --git a/managed/models/dsn_helpers.go b/managed/models/dsn_helpers.go index 3c5e6c8b2e2..a86c5d27e08 100644 --- a/managed/models/dsn_helpers.go +++ b/managed/models/dsn_helpers.go @@ -56,6 +56,7 @@ func FindDSNByServiceIDandPMMAgentID(q *reform.Querier, serviceID, pmmAgentID, d QANMySQLSlowlogAgentType, QANMySQLPerfSchemaAgentType, MySQLdExporterType, + RTAMySQLAgentType, ) case PostgreSQLServiceType: agentTypes = append( diff --git a/managed/services/agents/mysql.go b/managed/services/agents/mysql.go index f6d74009392..34fd104a465 100644 --- a/managed/services/agents/mysql.go +++ b/managed/services/agents/mysql.go @@ -24,6 +24,7 @@ import ( "time" "github.com/AlekSi/pointer" + "google.golang.org/protobuf/types/known/durationpb" agentv1 "github.com/percona/pmm/api/agent/v1" inventoryv1 "github.com/percona/pmm/api/inventory/v1" @@ -231,6 +232,30 @@ func qanMySQLSlowlogAgentConfig(service *models.Service, agent *models.Agent, pm } } +// rtaMySQLAgentConfig returns desired configuration of rta-mysql-agent RTA agent. +func rtaMySQLAgentConfig(service *models.Service, agent *models.Agent, pmmAgentVersion *version.Parsed) *agentv1.SetStateRequest_BuiltinAgent { + tdp := agent.TemplateDelimiters(service) + + apiRTAOptions := &inventoryv1.RTAOptions{} + if agent.RTAOptions.CollectInterval != nil { + apiRTAOptions.CollectInterval = durationpb.New(*agent.RTAOptions.CollectInterval) + } + + return &agentv1.SetStateRequest_BuiltinAgent{ + Type: inventoryv1.AgentType_AGENT_TYPE_RTA_MYSQL_AGENT, + Dsn: agent.DSN(service, models.DSNParams{DialTimeout: time.Second, Database: ""}, nil, pmmAgentVersion), + RtaOptions: apiRTAOptions, + ServiceId: service.ServiceID, + ServiceName: service.ServiceName, + TextFiles: &agentv1.TextFiles{ + Files: agent.Files(), + TemplateLeftDelim: tdp.Left, + TemplateRightDelim: tdp.Right, + }, + TlsSkipVerify: agent.TLSSkipVerify, + } +} + // https://dev.mysql.com/doc/refman/8.4/en/mysql-command-options.html // https://dev.mysql.com/doc/refman/8.4/en/connection-options.html#encrypted-connection-options const myCnfTemplate = `[client] diff --git a/managed/services/agents/state.go b/managed/services/agents/state.go index 8dad8d4dc8b..34e9c908af1 100644 --- a/managed/services/agents/state.go +++ b/managed/services/agents/state.go @@ -243,7 +243,7 @@ func (u *StateUpdater) sendSetStateRequest(ctx context.Context, agent *pmmAgentI models.ValkeyExporterType, models.QANMySQLPerfSchemaAgentType, models.QANMySQLSlowlogAgentType, models.QANMongoDBProfilerAgentType, models.QANMongoDBMongologAgentType, models.QANPostgreSQLPgStatementsAgentType, models.QANPostgreSQLPgStatMonitorAgentType, - models.RTAMongoDBAgentType: + models.RTAMongoDBAgentType, models.RTAMySQLAgentType: service, err := models.FindServiceByID(u.db.Querier, pointer.GetString(row.ServiceID)) if err != nil { return err @@ -286,6 +286,8 @@ func (u *StateUpdater) sendSetStateRequest(ctx context.Context, agent *pmmAgentI builtinAgents[row.AgentID] = qanPostgreSQLPgStatMonitorAgentConfig(service, row, pmmAgentVersion) case models.RTAMongoDBAgentType: builtinAgents[row.AgentID] = rtaMongoDBAgentConfig(service, row, pmmAgentVersion) + case models.RTAMySQLAgentType: + builtinAgents[row.AgentID] = rtaMySQLAgentConfig(service, row, pmmAgentVersion) } default: diff --git a/managed/services/converters.go b/managed/services/converters.go index 32d85b0e1e1..8f516ebf7b3 100644 --- a/managed/services/converters.go +++ b/managed/services/converters.go @@ -607,6 +607,21 @@ func ToAPIAgent(q *reform.Querier, agent *models.Agent) (inventoryv1.Agent, erro RtaOptions: ToAPIRTAOptions(&agent.RTAOptions), }, nil + case models.RTAMySQLAgentType: + return &inventoryv1.RTAMySQLAgent{ + AgentId: agent.AgentID, + PmmAgentId: pointer.GetString(agent.PMMAgentID), + ServiceId: serviceID, + Username: pointer.GetString(agent.Username), + Disabled: agent.Disabled, + Status: inventoryv1.AgentStatus(inventoryv1.AgentStatus_value[agent.Status]), + CustomLabels: labels, + Tls: agent.TLS, + TlsSkipVerify: agent.TLSSkipVerify, + LogLevel: inventoryv1.LogLevelAPIValue(agent.LogLevel), + RtaOptions: ToAPIRTAOptions(&agent.RTAOptions), + }, nil + default: panic(fmt.Errorf("cannot convert unknown agent type %s", agent.AgentType)) } diff --git a/managed/services/inventory/agents.go b/managed/services/inventory/agents.go index 69c8b9acefe..2ea4205c54c 100644 --- a/managed/services/inventory/agents.go +++ b/managed/services/inventory/agents.go @@ -1732,6 +1732,96 @@ func (as *AgentsService) ChangeRTAMongoDBAgent( return res, nil } +// AddRTAMySQLAgent adds MySQL Real-Time Analytics Agent. +func (as *AgentsService) AddRTAMySQLAgent(ctx context.Context, p *inventoryv1.AddRTAMySQLAgentParams) (*inventoryv1.AddAgentResponse, 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, + MySQLOptions: models.MySQLOptions{ + TLSCa: p.GetTlsCa(), + TLSCert: p.GetTlsCert(), + TLSKey: p.GetTlsKey(), + }, + LogLevel: services.SpecifyLogLevel(p.LogLevel, inventoryv1.LogLevel_LOG_LEVEL_FATAL), + SkipConnectionCheck: p.SkipConnectionCheck, + } + + // Set RTA options if provided + if p.RtaOptions != nil { + params.RTAOptions = *models.RTAOptionsFromRequest(p.RtaOptions) + } + + agent, err := as.executeAgentAdd(ctx, models.RTAMySQLAgentType, params, true) + if err != nil { + return nil, err + } + + rtaMySQLAgent, ok := agent.(*inventoryv1.RTAMySQLAgent) + if !ok { + return nil, unexpectedAgentTypeError(agent) + } + as.state.RequestStateUpdate(ctx, p.PmmAgentId) + + res := &inventoryv1.AddAgentResponse{ + Agent: &inventoryv1.AddAgentResponse_RtaMysqlAgent{ + RtaMysqlAgent: rtaMySQLAgent, + }, + } + + return res, nil +} + +// ChangeRTAMySQLAgent updates MySQL Real-Time Analytics Agent with given parameters. +func (as *AgentsService) ChangeRTAMySQLAgent( + ctx context.Context, agentID string, + p *inventoryv1.ChangeRTAMySQLAgentParams, +) (*inventoryv1.ChangeAgentResponse, error) { + changeParams := &models.ChangeAgentParams{ + Enabled: p.Enable, + Username: p.Username, + Password: p.Password, + TLS: p.Tls, + TLSSkipVerify: p.TlsSkipVerify, + LogLevel: convertLogLevel(p.LogLevel), + CustomLabels: convertCustomLabels(p.CustomLabels), + MySQLOptions: &models.ChangeMySQLOptions{ + TLSCa: p.TlsCa, + TLSCert: p.TlsCert, + TLSKey: p.TlsKey, + }, + SkipConnectionCheck: p.GetSkipConnectionCheck(), + } + + // Set RTA options if provided + if p.RtaOptions != nil { + changeParams.RTAOptions = models.RTAOptionsFromRequest(p.RtaOptions) + } + + ag, err := as.executeAgentChange(ctx, agentID, changeParams) + if err != nil { + return nil, err + } + + agent, ok := ag.(*inventoryv1.RTAMySQLAgent) + if !ok { + return nil, unexpectedAgentTypeError(ag) + } + as.state.RequestStateUpdate(ctx, agent.PmmAgentId) + + res := &inventoryv1.ChangeAgentResponse{ + Agent: &inventoryv1.ChangeAgentResponse_RtaMysqlAgent{ + RtaMysqlAgent: agent, + }, + } + + return res, nil +} + // Remove removes Agent, and sends state update to pmm-agent, or kicks it. func (as *AgentsService) Remove(ctx context.Context, id string, force bool) error { var removedAgent *models.Agent diff --git a/managed/services/inventory/grpc/agents_server.go b/managed/services/inventory/grpc/agents_server.go index f248a653be9..93e524b4a5f 100644 --- a/managed/services/inventory/grpc/agents_server.go +++ b/managed/services/inventory/grpc/agents_server.go @@ -58,6 +58,7 @@ var agentTypes = map[inventoryv1.AgentType]models.AgentType{ inventoryv1.AgentType_AGENT_TYPE_VM_AGENT: models.VMAgentType, inventoryv1.AgentType_AGENT_TYPE_NOMAD_AGENT: models.NomadAgentType, inventoryv1.AgentType_AGENT_TYPE_RTA_MONGODB_AGENT: models.RTAMongoDBAgentType, + inventoryv1.AgentType_AGENT_TYPE_RTA_MYSQL_AGENT: models.RTAMySQLAgentType, } func agentType(req *inventoryv1.ListAgentsRequest) *models.AgentType { @@ -121,6 +122,8 @@ func (s *agentsServer) ListAgents(ctx context.Context, req *inventoryv1.ListAgen res.NomadAgent = append(res.NomadAgent, agent) case *inventoryv1.RTAMongoDBAgent: res.RtaMongodbAgent = append(res.RtaMongodbAgent, agent) + case *inventoryv1.RTAMySQLAgent: + res.RtaMysqlAgent = append(res.RtaMysqlAgent, agent) default: panic(fmt.Errorf("unhandled inventory Agent type %T", agent)) } @@ -175,6 +178,8 @@ func (s *agentsServer) GetAgent(ctx context.Context, req *inventoryv1.GetAgentRe res.Agent = &inventoryv1.GetAgentResponse_NomadAgent{NomadAgent: agent} case *inventoryv1.RTAMongoDBAgent: res.Agent = &inventoryv1.GetAgentResponse_RtaMongodbAgent{RtaMongodbAgent: agent} + case *inventoryv1.RTAMySQLAgent: + res.Agent = &inventoryv1.GetAgentResponse_RtaMysqlAgent{RtaMysqlAgent: agent} default: panic(fmt.Errorf("unhandled inventory Agent type %T", agent)) } @@ -231,6 +236,8 @@ func (s *agentsServer) AddAgent(ctx context.Context, req *inventoryv1.AddAgentRe return s.s.AddQANPostgreSQLPgStatMonitorAgent(ctx, req.GetQanPostgresqlPgstatmonitorAgent()) case *inventoryv1.AddAgentRequest_RtaMongodbAgent: return s.s.AddRTAMongoDBAgent(ctx, req.GetRtaMongodbAgent()) + case *inventoryv1.AddAgentRequest_RtaMysqlAgent: + return s.s.AddRTAMySQLAgent(ctx, req.GetRtaMysqlAgent()) default: return nil, status.Error(codes.InvalidArgument, fmt.Sprintf("invalid agent type %T", req.Agent)) } @@ -275,6 +282,8 @@ func (s *agentsServer) ChangeAgent(ctx context.Context, req *inventoryv1.ChangeA return s.s.ChangeNomadAgent(ctx, agentID, req.GetNomadAgent()) case *inventoryv1.ChangeAgentRequest_RtaMongodbAgent: return s.s.ChangeRTAMongoDBAgent(ctx, agentID, req.GetRtaMongodbAgent()) + case *inventoryv1.ChangeAgentRequest_RtaMysqlAgent: + return s.s.ChangeRTAMySQLAgent(ctx, agentID, req.GetRtaMysqlAgent()) default: return nil, status.Error(codes.InvalidArgument, fmt.Sprintf("invalid agent type %T", req.Agent)) } diff --git a/managed/services/management/agent.go b/managed/services/management/agent.go index e2052409273..6444d8637f0 100644 --- a/managed/services/management/agent.go +++ b/managed/services/management/agent.go @@ -211,7 +211,7 @@ func (s *ManagementService) agentToAPI(agent *models.Agent) (*managementv1.Unive IsTlsCertificateKeySet: agent.MongoDBOptions.TLSCertificateKey != "", IsTlsCertificateKeyFilePasswordSet: agent.MongoDBOptions.TLSCertificateKeyFilePassword != "", } - case models.MySQLdExporterType, models.QANMySQLSlowlogAgentType, models.QANMySQLPerfSchemaAgentType: + case models.MySQLdExporterType, models.QANMySQLSlowlogAgentType, models.QANMySQLPerfSchemaAgentType, models.RTAMySQLAgentType: ua.MysqlOptions = &managementv1.UniversalAgent_MySQLOptions{ IsTlsKeySet: agent.MySQLOptions.TLSKey != "", } diff --git a/managed/services/realtimeanalytics/gate_test.go b/managed/services/realtimeanalytics/gate_test.go new file mode 100644 index 00000000000..2bd43ca6142 --- /dev/null +++ b/managed/services/realtimeanalytics/gate_test.go @@ -0,0 +1,49 @@ +// Copyright (C) 2023 Percona LLC +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Affero General Public License for more details. +// +// You should have received a copy of the GNU Affero General Public License +// along with this program. If not, see . + +package realtimeanalytics + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/percona/pmm/managed/models" +) + +func TestIsRtaFeatureSupported(t *testing.T) { + t.Parallel() + + // MongoDB RTA shipped in 3.7.0. + assert.True(t, isRtaFeatureSupported("3.7.0", models.MongoDBServiceType)) + assert.True(t, isRtaFeatureSupported("3.8.0", models.MongoDBServiceType)) + assert.False(t, isRtaFeatureSupported("3.6.0", models.MongoDBServiceType)) + + // MySQL RTA shipped in 3.9.0 — an agent in [3.7.0, 3.9.0) supports MongoDB RTA but + // would not understand the MySQL builtin, so it must be reported as unsupported. + assert.False(t, isRtaFeatureSupported("3.7.0", models.MySQLServiceType)) + assert.False(t, isRtaFeatureSupported("3.8.0", models.MySQLServiceType)) + assert.False(t, isRtaFeatureSupported("3.8.99", models.MySQLServiceType)) + assert.True(t, isRtaFeatureSupported("3.9.0", models.MySQLServiceType)) + assert.True(t, isRtaFeatureSupported("3.10.0", models.MySQLServiceType)) + + // Service types that do not support RTA are never reported as supported, + // regardless of agent version. + assert.False(t, isRtaFeatureSupported("3.9.0", models.ValkeyServiceType)) + assert.False(t, isRtaFeatureSupported("3.9.0", models.PostgreSQLServiceType)) + + // Unparsable version is never supported. + assert.False(t, isRtaFeatureSupported("not-a-version", models.MySQLServiceType)) +} diff --git a/managed/services/realtimeanalytics/service.go b/managed/services/realtimeanalytics/service.go index 0414f9b6558..cbd2766a68c 100644 --- a/managed/services/realtimeanalytics/service.go +++ b/managed/services/realtimeanalytics/service.go @@ -91,8 +91,8 @@ func (s *Service) ListServices(ctx context.Context, req *rtav1.ListServicesReque return nil, err } } else { - // No service type filter specified - return all services that support RTA. - // For the time being we only support MongoDB, so we can just filter by service type here. + // No service type filter specified - return all services that support RTA + // (currently MongoDB and MySQL), filtered by service type. for _, modelServiceType := range services.ServiceTypes { _, err := getRTAAgentTypeForServiceType(modelServiceType) if err != nil { @@ -137,7 +137,7 @@ func (s *Service) ListServices(ctx context.Context, req *rtav1.ListServicesReque // PMM Agent that is linked to the requested service may be outdated and doesn't support RTA. // In this case we cannot start RTA session for this service and should return an error. - if !isRtaFeatureSupported(*pmmAgents[0].Version) { + if !isRtaFeatureSupported(pointer.GetString(pmmAgents[0].Version), svc.ServiceType) { continue // skip services with unsupported pmm-agent version } @@ -150,6 +150,8 @@ func (s *Service) ListServices(ctx context.Context, req *rtav1.ListServicesReque switch apiSvc := apiSvc.(type) { case *inventoryv1.MongoDBService: res.Mongodb = append(res.Mongodb, apiSvc) + case *inventoryv1.MySQLService: + res.Mysql = append(res.Mysql, apiSvc) // Add other service types once RTA is supported for them default: return nil, fmt.Errorf("unhandled inventory Service type %T", apiSvc) @@ -160,6 +162,10 @@ func (s *Service) ListServices(ctx context.Context, req *rtav1.ListServicesReque return strings.Compare(a.ServiceName, b.ServiceName) }) + slices.SortStableFunc(res.Mysql, func(a, b *inventoryv1.MySQLService) int { + return strings.Compare(a.ServiceName, b.ServiceName) + }) + return res, nil } @@ -261,6 +267,19 @@ func (s *Service) StartSession(ctx context.Context, req *rtav1.StartSessionReque // RTA Agent exists - update its state if required rtaAgent = existingRTAAgents[0] + + // The agent may have been created through the inventory API against a + // pmm-agent that predates RTA support for this service type; don't + // enable or report a session that pmm-agent cannot run. + pmmAgent, err := models.FindAgentByID(tx.Querier, pointer.GetString(rtaAgent.PMMAgentID)) + if err != nil { + return err + } + if !isRtaFeatureSupported(pointer.GetString(pmmAgent.Version), service.ServiceType) { + return status.Errorf(codes.FailedPrecondition, + "Service %s has pmm-agent with version not supporting Real-Time Analytics.", service.ServiceID) + } + if !rtaAgent.Disabled { return nil // Already enabled, nothing to do } @@ -310,6 +329,12 @@ func (s *Service) StartSession(ctx context.Context, req *rtav1.StartSessionReque models.QANMongoDBProfilerAgentType, models.QANMongoDBMongologAgentType, } + case models.MySQLServiceType: + agentTypes = []models.AgentType{ + models.MySQLdExporterType, + models.QANMySQLPerfSchemaAgentType, + models.QANMySQLSlowlogAgentType, + } // Add other service types once RTA is supported for them default: return nil, status.Errorf(codes.InvalidArgument, @@ -352,7 +377,7 @@ func (s *Service) StartSession(ctx context.Context, req *rtav1.StartSessionReque // PMM Agent that is linked to the requested service may be outdated and doesn't support RTA. // In this case we cannot start RTA session for this service and should return an error. - if !isRtaFeatureSupported(*pmmAgent.Version) { + if !isRtaFeatureSupported(pointer.GetString(pmmAgent.Version), service.ServiceType) { return nil, status.Errorf(codes.FailedPrecondition, "Service %s has pmm-agent with version not supporting Real-Time Analytics.", service.ServiceID) } @@ -604,6 +629,7 @@ func (s *Service) convertAgentToSession(agent *models.Agent, service *models.Ser return &rtav1.Session{ ServiceId: service.ServiceID, ServiceName: service.ServiceName, + ServiceType: getProtoServiceType(service.ServiceType), ClusterName: service.Cluster, StartTime: timestamppb.New(agent.CreatedAt), CollectInterval: durationpb.New(*agent.RTAOptions.CollectInterval), @@ -611,23 +637,58 @@ func (s *Service) convertAgentToSession(agent *models.Agent, service *models.Ser } } +func getProtoServiceType(serviceType models.ServiceType) inventoryv1.ServiceType { + switch serviceType { + case models.MongoDBServiceType: + return inventoryv1.ServiceType_SERVICE_TYPE_MONGODB_SERVICE + case models.MySQLServiceType: + return inventoryv1.ServiceType_SERVICE_TYPE_MYSQL_SERVICE + default: + return inventoryv1.ServiceType_SERVICE_TYPE_UNSPECIFIED + } +} + func getRTAAgentTypeForServiceType(serviceType models.ServiceType) (models.AgentType, error) { switch serviceType { case models.MongoDBServiceType: return models.RTAMongoDBAgentType, nil + case models.MySQLServiceType: + return models.RTAMySQLAgentType, nil default: return "", fmt.Errorf("service of type %s does not support Real-Time Analytics", serviceType) } } -// isRtaFeatureSupported checks if the passed pmm-agent's version supporting RTA. -func isRtaFeatureSupported(pmmAgentVersion string) bool { +// rtaMinAgentVersion returns the minimum pmm-agent version that ships the RTA +// collector for the given service type, and whether RTA is supported for that +// type at all. Different database collectors landed in different releases, so +// the gate must be per-service-type; unsupported types return ok=false. +func rtaMinAgentVersion(serviceType models.ServiceType) (version.FeatureVersion, bool) { + switch serviceType { + case models.MongoDBServiceType: + return version.MongoDBRtaAgentSupportVersion, true + case models.MySQLServiceType: + return version.MySQLRtaAgentSupportVersion, true + default: + return nil, false + } +} + +// isRtaFeatureSupported checks if the passed pmm-agent's version supports RTA for +// the given service type. It returns false for service types that do not support +// RTA at all, rather than assuming a default version. +func isRtaFeatureSupported(pmmAgentVersion string, serviceType models.ServiceType) bool { + minVersion, ok := rtaMinAgentVersion(serviceType) + if !ok { + return false + } + versionParsed, versionParseErr := version.Parse(pmmAgentVersion) if versionParseErr != nil { return false } - return versionParsed.IsFeatureSupported(version.MongoDBRtaAgentSupportVersion) + return versionParsed.IsFeatureSupported(minVersion) } // check interfaces. diff --git a/managed/services/realtimeanalytics/service_test.go b/managed/services/realtimeanalytics/service_test.go index be12458c710..c0988c52348 100644 --- a/managed/services/realtimeanalytics/service_test.go +++ b/managed/services/realtimeanalytics/service_test.go @@ -246,6 +246,7 @@ func TestListSessions(t *testing.T) { assert.Equal(t, service.ServiceID, resp.Sessions[0].ServiceId) assert.Equal(t, service.ServiceName, resp.Sessions[0].ServiceName) + assert.Equal(t, inventoryv1.ServiceType_SERVICE_TYPE_MONGODB_SERVICE, resp.Sessions[0].ServiceType) assert.Equal(t, "test-cluster", resp.Sessions[0].ClusterName) assert.Equal(t, rtav1.SessionStatus_SESSION_STATUS_RUNNING, resp.Sessions[0].Status) assert.NotNil(t, resp.Sessions[0].StartTime) @@ -488,6 +489,60 @@ func TestStartSession(t *testing.T) { assert.Equal(t, status.Convert(err).Message(), fmt.Sprintf("Service %s has pmm-agent with version not supporting Real-Time Analytics.", serviceOld.ServiceID)) }) + + t.Run("existing RTA agent on pmm-agent that doesn't support RTA", func(t *testing.T) { + // An RTA agent created through the inventory API may be linked to a + // pmm-agent that predates RTA support for its service type. Starting a + // session for it must fail instead of enabling an agent that cannot run. + nodeOld, err := models.CreateNode(db.Querier, models.GenericNodeType, &models.CreateNodeParams{ + NodeName: "test-node-3", + }) + require.NoError(t, err) + + pmmAgentOld, err := models.CreatePMMAgent(db.Querier, nodeOld.NodeID, nil) + require.NoError(t, err) + + // 3.8.0 ships the MongoDB RTA collector but not the MySQL one. + pmmAgentOld.Version = new("3.8.0") + err = db.Update(pmmAgentOld) + require.NoError(t, err) + + serviceMySQL, err := models.AddNewService(db.Querier, models.MySQLServiceType, &models.AddDBMSServiceParams{ + ServiceName: "mysql-old", + NodeID: nodeOld.NodeID, + Address: new("127.0.0.1"), + Port: new(uint16(3306)), + Cluster: "cluster-3", + }) + require.NoError(t, err) + + _, err = models.CreateAgent(db.Querier, models.RTAMySQLAgentType, &models.CreateAgentParams{ + PMMAgentID: pmmAgentOld.AgentID, + ServiceID: serviceMySQL.ServiceID, + Username: "test-user", + Password: "test-pass", + Disabled: true, + RTAOptions: models.RTAOptions{CollectInterval: new(2 * time.Second)}, + }) + require.NoError(t, err) + + _, err = svc.StartSession(t.Context(), &rtav1.StartSessionRequest{ + ServiceId: serviceMySQL.ServiceID, + }) + require.Error(t, err) + assert.Equal(t, codes.FailedPrecondition, status.Convert(err).Code()) + assert.Equal(t, status.Convert(err).Message(), fmt.Sprintf("Service %s has pmm-agent with version not supporting Real-Time Analytics.", + serviceMySQL.ServiceID)) + + // The agent must remain disabled. + agents, err := models.FindAgents(db.Querier, models.AgentFilters{ + ServiceID: serviceMySQL.ServiceID, + AgentType: new(models.RTAMySQLAgentType), + }) + require.NoError(t, err) + require.Len(t, agents, 1) + assert.True(t, agents[0].Disabled) + }) } func TestStopSession(t *testing.T) { @@ -906,3 +961,14 @@ func TestService_Collect(t *testing.T) { assert.Equal(t, "mongodb-1", storeqQs[i].ServiceName) } } + +func TestGetProtoServiceType(t *testing.T) { + t.Parallel() + + assert.Equal(t, inventoryv1.ServiceType_SERVICE_TYPE_MYSQL_SERVICE, getProtoServiceType(models.MySQLServiceType)) + assert.Equal(t, inventoryv1.ServiceType_SERVICE_TYPE_MONGODB_SERVICE, getProtoServiceType(models.MongoDBServiceType)) + + // Service types that cannot run RTA carry no technology rather than a wrong one. + assert.Equal(t, inventoryv1.ServiceType_SERVICE_TYPE_UNSPECIFIED, getProtoServiceType(models.PostgreSQLServiceType)) + assert.Equal(t, inventoryv1.ServiceType_SERVICE_TYPE_UNSPECIFIED, getProtoServiceType(models.ExternalServiceType)) +} diff --git a/managed/services/victoriametrics/prometheus.go b/managed/services/victoriametrics/prometheus.go index df635de059e..ddc4e6a93bf 100644 --- a/managed/services/victoriametrics/prometheus.go +++ b/managed/services/victoriametrics/prometheus.go @@ -196,7 +196,7 @@ func AddScrapeConfigs(l *logrus.Entry, cfg *config.Config, q *reform.Querier, // continue case models.QANPostgreSQLPgStatementsAgentType, models.QANPostgreSQLPgStatMonitorAgentType: continue - case models.RTAMongoDBAgentType: + case models.RTAMongoDBAgentType, models.RTAMySQLAgentType: continue case models.RDSExporterType: if skipExternalAgents && pointer.GetString(agent.RunsOnNodeID) == models.PMMServerNodeID { diff --git a/ui/apps/pmm/src/hooks/api/useRealtime.ts b/ui/apps/pmm/src/hooks/api/useRealtime.ts index 6e87afe2597..d87d82d4872 100644 --- a/ui/apps/pmm/src/hooks/api/useRealtime.ts +++ b/ui/apps/pmm/src/hooks/api/useRealtime.ts @@ -13,6 +13,8 @@ import { stopSession, } from 'api/rta'; import { + AvailableService, + AvailableServicesResponse, RealtimeSession, StartSessionResponse, StartSessionPayload, @@ -21,12 +23,22 @@ import { QueryData, RawQueryData, } from 'types/rta.types'; -import { ServiceType, VersionedService } from 'types/services.types'; +import { ServiceType } from 'types/services.types'; import { useMemo } from 'react'; import { EmptyResponse } from 'types/util.types'; import { parseDuration } from 'utils/duration.utils'; import { useUser } from 'contexts/user'; +// Maps the technology-keyed groups of the ListServices response to the service +// type each group holds. Add a key here when RTA gains another engine. +const AVAILABLE_SERVICE_TYPES: Record< + keyof AvailableServicesResponse, + ServiceType +> = { + mongodb: ServiceType.mongodb, + mysql: ServiceType.mysql, +}; + const KEYS = { LIST_SESSIONS: 'rta:list-sessions', START_SESSION: 'rta:start-session', @@ -117,27 +129,40 @@ export const useStopSessions = ( }; /** - * Hook to get MongoDB services that don't have running RTA agents + * Hook to get services (MongoDB, MySQL, ...) that don't have running RTA agents */ export const useAvailableServices = (serviceTypes?: ServiceType[]) => { const { user } = useUser(); const { data: sessions, isLoading: isLoadingSessions } = useRealtimeSessions(); - const { data: services = { mongodb: [] }, isLoading: isLoadingServices } = - useQuery({ - queryKey: [KEYS.AVAILABLE_SERVICES], - queryFn: () => getAvailableServices(serviceTypes), - enabled: !!user, - }); - - const availableServices = useMemo(() => { + const { + data: services = { mongodb: [], mysql: [] }, + isLoading: isLoadingServices, + } = useQuery({ + queryKey: [KEYS.AVAILABLE_SERVICES], + queryFn: () => getAvailableServices(serviceTypes), + enabled: !!user, + }); + + const availableServices = useMemo(() => { const runningServiceIds = (sessions || []).map( (session) => session.serviceId ); - // Filter out services that already have running RTA agents - return Object.values(services) - .flat() + // Filter out services that already have running RTA agents. The response + // groups services by technology, so the key is what tells us the type - + // it is carried over onto each service rather than flattened away. + return ( + Object.keys( + AVAILABLE_SERVICE_TYPES + ) as (keyof AvailableServicesResponse)[] + ) + .flatMap((serviceKey) => + (services[serviceKey] ?? []).map((service) => ({ + ...service, + serviceType: AVAILABLE_SERVICE_TYPES[serviceKey], + })) + ) .filter((service) => !runningServiceIds.includes(service.serviceId)); }, [services, sessions]); diff --git a/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.tsx b/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.tsx index ff2046946ee..8477a7f208f 100644 --- a/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.tsx +++ b/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.tsx @@ -15,6 +15,10 @@ import { ServicesAutocompleteInputProps, } from './ServicesAutocompleteInput.types'; import ServiceTags from './components/ServiceTags'; +import { + sharedTechnology, + technologyLabel, +} from 'pages/rta/components/technology'; const ServicesAutocompleteInput: FC = ({ disabled = false, @@ -22,6 +26,7 @@ const ServicesAutocompleteInput: FC = ({ onServiceIdsChange, inputProps, tagPresentation = 'label', + singleTechnology = false, 'data-testid': testId, ...props }) => { @@ -32,6 +37,23 @@ const ServicesAutocompleteInput: FC = ({ () => serviceOptions.filter((option) => serviceIds?.includes(option.id)), [serviceOptions, serviceIds] ); + // With singleTechnology the picker feeds one view of live queries, which + // cannot mix engines, so the first pick fixes the technology and the others + // are disabled until the selection is cleared. + const selectedTechnology = useMemo( + () => + singleTechnology + ? sharedTechnology( + selectedServices + .filter((option) => option.type === 'service') + .map((option) => option.serviceType) + ) + : undefined, + [singleTechnology, selectedServices] + ); + const isOptionDisabled = (option: ServiceOption) => + selectedTechnology !== undefined && + option.serviceType !== selectedTechnology; const handleServiceChange = ( _event: React.SyntheticEvent, @@ -61,6 +83,8 @@ const ServicesAutocompleteInput: FC = ({ value={selectedServices} onChange={handleServiceChange} getOptionLabel={(option) => option.label} + groupBy={(option) => technologyLabel(option.serviceType)} + getOptionDisabled={isOptionDisabled} isOptionEqualToValue={(option, value) => option.id === value.id} disableCloseOnSelect limitTags={2} @@ -85,6 +109,7 @@ const ServicesAutocompleteInput: FC = ({ key={option.id} option={option} selected={selected} + disabled={isOptionDisabled(option)} clusterSelectionState={ option.type === 'cluster' ? getClusterSelectionState( diff --git a/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.types.ts b/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.types.ts index 454ff7fd6ac..606a1bc8e3c 100644 --- a/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.types.ts +++ b/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.types.ts @@ -1,6 +1,6 @@ import { AutocompleteRenderInputParams } from '@mui/material/Autocomplete'; -import { RealtimeSession } from 'types/rta.types'; -import { VersionedService } from 'types/services.types'; +import { AvailableService, RealtimeSession } from 'types/rta.types'; +import { ServiceType } from 'types/services.types'; export type TagPresentation = 'label' | 'tags'; @@ -10,6 +10,9 @@ interface BaseProps { serviceIds: string[]; onServiceIdsChange: (serviceIds: string[]) => void; inputProps?: Partial; + // Restrict the selection to one database technology. Set where the picker + // drives a single view of live queries; starting sessions has no such limit. + singleTechnology?: boolean; 'data-testid'?: string; } @@ -18,7 +21,7 @@ type PropsWithSessions = BaseProps & { }; type PropsWithServices = BaseProps & { - services: VersionedService[]; + services: AvailableService[]; }; export type ServicesAutocompleteInputProps = @@ -31,6 +34,9 @@ export interface ServiceOption { label: string; serviceId?: string; cluster?: string; + // For a cluster option this is the technology shared by its services, and is + // left unset if they somehow disagree. + serviceType?: ServiceType; } export type ClusterSelectionState = 'all' | 'partial' | 'none'; diff --git a/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.utils.ts b/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.utils.ts index 92c1a2a6a48..47b9919bd10 100644 --- a/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.utils.ts +++ b/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/ServicesAutocompleteInput.utils.ts @@ -1,9 +1,12 @@ -import { VersionedService } from 'types/services.types'; import { ClusterSelectionState, ServiceOption, } from './ServicesAutocompleteInput.types'; -import { RealtimeSession } from 'types/rta.types'; +import { AvailableService, RealtimeSession } from 'types/rta.types'; +import { + sharedTechnology, + technologyLabel, +} from 'pages/rta/components/technology'; /** * Get the selection state of a cluster @@ -40,15 +43,51 @@ export const getClusterSelectionState = ( * Build service options from available services */ export const getServiceOptions = ( - services: VersionedService[] | RealtimeSession[] + services: AvailableService[] | RealtimeSession[] ): ServiceOption[] => { if (services.length === 0) { return []; } + // The picker groups options by technology and MUI expects the list to arrive + // already sorted by group, otherwise a header repeats for every run of + // options. Services we cannot name sort last, so they end up in one trailing + // group rather than scattered. + const byTechnology = new Map< + string, + (AvailableService | RealtimeSession)[] + >(); + + services.forEach((service) => { + const label = technologyLabel(service.serviceType); + const group = byTechnology.get(label); + + if (group) { + group.push(service); + } else { + byTechnology.set(label, [service]); + } + }); + + return Array.from(byTechnology.keys()) + .sort((a, b) => { + if (!a || !b) { + return a ? -1 : 1; + } + + return a.localeCompare(b); + }) + .flatMap((label) => getClusterOptions(byTechnology.get(label) ?? [])); +}; + +// getClusterOptions lays out one technology's services: standalone ones first, +// then each cluster header followed by its services. +const getClusterOptions = ( + services: (AvailableService | RealtimeSession)[] +): ServiceOption[] => { // Group services by cluster - const clusterMap = new Map(); - const standaloneServices: (VersionedService | RealtimeSession)[] = []; + const clusterMap = new Map(); + const standaloneServices: (AvailableService | RealtimeSession)[] = []; services.forEach((service) => { let clusterName = ''; @@ -82,6 +121,7 @@ export const getServiceOptions = ( id: service.serviceId, label: service.serviceName, serviceId: service.serviceId, + serviceType: service.serviceType, }); }); @@ -95,6 +135,9 @@ export const getServiceOptions = ( id: `cluster-${clusterName}`, label: clusterName, cluster: clusterName, + serviceType: sharedTechnology( + clusterServices.map((service) => service.serviceType) + ), }); // Add cluster services sorted by name @@ -107,6 +150,7 @@ export const getServiceOptions = ( label: service.serviceName, serviceId: service.serviceId, cluster: clusterName, + serviceType: service.serviceType, }); }); }); diff --git a/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/components/ServiceOption.tsx b/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/components/ServiceOption.tsx index ebc9b030467..67f12f4c3ad 100644 --- a/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/components/ServiceOption.tsx +++ b/ui/apps/pmm/src/pages/rta/components/services-autocomplete-input/components/ServiceOption.tsx @@ -5,12 +5,12 @@ import { ClusterSelectionState, ServiceOption as ServiceOptionType, } from '../ServicesAutocompleteInput.types'; - interface Props extends HTMLAttributes { option: ServiceOptionType; selected: boolean; clusterSelectionState?: ClusterSelectionState; onClusterToggle?: (clusterName: string) => void; + disabled?: boolean; } const ServiceOption: FC = ({ @@ -18,6 +18,7 @@ const ServiceOption: FC = ({ selected, clusterSelectionState, onClusterToggle, + disabled = false, ...props }) => { const { key, ...otherProps } = props as HTMLAttributes & { @@ -30,10 +31,14 @@ const ServiceOption: FC = ({ const isFullySelected = isCluster && clusterSelectionState === 'all'; const isPartiallySelected = isCluster && clusterSelectionState === 'partial'; + // Cluster rows drive their own toggle rather than MUI's option click, so a + // disabled row has to opt out of both handlers itself. const handleClick = isCluster ? (e: React.MouseEvent) => { e.stopPropagation(); - onClusterToggle?.(option.label); + if (!disabled) { + onClusterToggle?.(option.label); + } } : otherProps.onClick; @@ -51,12 +56,14 @@ const ServiceOption: FC = ({ padding: '0 8px', paddingLeft: isServiceInCluster ? '40px' : '8px', position: 'relative', + ...(disabled && { opacity: 0.5, pointerEvents: 'none' }), }, }} > = ({ flex: 1, py: '9px', px: 1, + display: 'flex', + alignItems: 'center', + gap: 1, }} > {option.label} diff --git a/ui/apps/pmm/src/pages/rta/components/technology/Technology.messages.ts b/ui/apps/pmm/src/pages/rta/components/technology/Technology.messages.ts new file mode 100644 index 00000000000..009a5384beb --- /dev/null +++ b/ui/apps/pmm/src/pages/rta/components/technology/Technology.messages.ts @@ -0,0 +1,4 @@ +export const Messages = { + mongodb: 'MongoDB', + mysql: 'MySQL', +}; diff --git a/ui/apps/pmm/src/pages/rta/components/technology/Technology.tsx b/ui/apps/pmm/src/pages/rta/components/technology/Technology.tsx new file mode 100644 index 00000000000..e6fb09888c3 --- /dev/null +++ b/ui/apps/pmm/src/pages/rta/components/technology/Technology.tsx @@ -0,0 +1,22 @@ +import type { FC } from 'react'; +import { ServiceType } from 'types/services.types'; +import { technologyLabel } from './Technology.utils'; + +interface Props { + serviceType?: ServiceType; +} + +// Technology names the database technology of a service in words. The pickers +// carry it in their group headers instead, so this is only used where a row +// needs to state it on its own. +const Technology: FC = ({ serviceType }) => { + const label = technologyLabel(serviceType); + + if (!label) { + return null; + } + + return {label}; +}; + +export default Technology; diff --git a/ui/apps/pmm/src/pages/rta/components/technology/Technology.utils.test.ts b/ui/apps/pmm/src/pages/rta/components/technology/Technology.utils.test.ts new file mode 100644 index 00000000000..c91bb2a4805 --- /dev/null +++ b/ui/apps/pmm/src/pages/rta/components/technology/Technology.utils.test.ts @@ -0,0 +1,29 @@ +import { describe, it, expect } from 'vitest'; +import { ServiceType } from 'types/services.types'; +import { sharedTechnology, technologyLabel } from './Technology.utils'; + +describe('technologyLabel', () => { + it('names the technologies RTA supports', () => { + expect(technologyLabel(ServiceType.mysql)).toBe('MySQL'); + expect(technologyLabel(ServiceType.mongodb)).toBe('MongoDB'); + }); + + it('returns an empty label for anything else', () => { + expect(technologyLabel(undefined)).toBe(''); + expect(technologyLabel(ServiceType.posgresql)).toBe(''); + }); +}); + +describe('sharedTechnology', () => { + it('returns the common technology', () => { + expect(sharedTechnology([ServiceType.mysql, ServiceType.mysql])).toBe( + ServiceType.mysql + ); + }); + + it('returns nothing when the services disagree', () => { + expect( + sharedTechnology([ServiceType.mysql, ServiceType.mongodb]) + ).toBeUndefined(); + }); +}); diff --git a/ui/apps/pmm/src/pages/rta/components/technology/Technology.utils.ts b/ui/apps/pmm/src/pages/rta/components/technology/Technology.utils.ts new file mode 100644 index 00000000000..a55eae2a633 --- /dev/null +++ b/ui/apps/pmm/src/pages/rta/components/technology/Technology.utils.ts @@ -0,0 +1,23 @@ +import { ServiceType } from 'types/services.types'; +import { Messages } from './Technology.messages'; + +// Only the technologies Real-Time Analytics supports are named here; anything +// else renders without a label rather than as an empty or raw enum value. +const TECHNOLOGY_LABELS: Partial> = { + [ServiceType.mongodb]: Messages.mongodb, + [ServiceType.mysql]: Messages.mysql, +}; + +export const technologyLabel = (serviceType?: ServiceType): string => + (serviceType && TECHNOLOGY_LABELS[serviceType]) || ''; + +// sharedTechnology returns the technology common to every service, or undefined +// when they disagree - used for rows that stand for a whole cluster, and to +// decide which technology a selection of services belongs to. +export const sharedTechnology = ( + serviceTypes: (ServiceType | undefined)[] +): ServiceType | undefined => { + const distinct = new Set(serviceTypes); + + return distinct.size === 1 ? serviceTypes[0] : undefined; +}; diff --git a/ui/apps/pmm/src/pages/rta/components/technology/index.ts b/ui/apps/pmm/src/pages/rta/components/technology/index.ts new file mode 100644 index 00000000000..a9d266cdf8c --- /dev/null +++ b/ui/apps/pmm/src/pages/rta/components/technology/index.ts @@ -0,0 +1,2 @@ +export { default as Technology } from './Technology'; +export { sharedTechnology, technologyLabel } from './Technology.utils'; diff --git a/ui/apps/pmm/src/pages/rta/messages.ts b/ui/apps/pmm/src/pages/rta/messages.ts index 35cb3ef77db..7fd380a70c2 100644 --- a/ui/apps/pmm/src/pages/rta/messages.ts +++ b/ui/apps/pmm/src/pages/rta/messages.ts @@ -1,4 +1,4 @@ export const Messages = { disclaimer: - 'Currently available for MongoDB only connected through PMM Client 3.7.0 or newer. More databases coming soon.', + 'Currently available for MongoDB (PMM Client 3.7.0+) and MySQL (PMM Client 3.9.0+). More databases coming soon.', }; diff --git a/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.messages.ts b/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.messages.ts index 47a5ea59f8e..709c37c662d 100644 --- a/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.messages.ts +++ b/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.messages.ts @@ -3,5 +3,8 @@ export const Messages = { pause: 'Pause', resume: 'Resume', refresh: 'Refresh', + hideCommit: 'Hide transaction control', + hideCommitTooltip: + 'Hide transaction-control statements (COMMIT, ROLLBACK, BEGIN, START TRANSACTION) from the list.', export: 'Export', }; diff --git a/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.test.tsx b/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.test.tsx index bada615bfac..d405edb7c83 100644 --- a/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.test.tsx +++ b/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.test.tsx @@ -5,6 +5,7 @@ import { TEST_MONGO_DB_QUERY_DATA, TEST_REAL_TIME_SESSION, TEST_REAL_TIME_SESSION_2, + TEST_REAL_TIME_SESSION_MYSQL, } from 'utils/testStubs'; import { MemoryRouter, Route, Routes } from 'react-router-dom'; import { Messages } from './RealtimeOverview.messages'; @@ -29,6 +30,17 @@ vi.mock('api/rta', () => ({ getRunningSessions, })); +// The overview derives the technology of the selection by matching the URL's +// serviceIds against the running sessions, so a test that cares about the +// technology has to line those up. +const renderMySqlSelection = () => { + getRunningSessions.mockResolvedValue([TEST_REAL_TIME_SESSION_MYSQL]); + + return renderComponent({ + initialEntry: `/rta/overview?serviceIds=${TEST_REAL_TIME_SESSION_MYSQL.serviceId}`, + }); +}; + const renderComponent = ({ initialEntry = '/rta/overview?serviceIds=123', }: { @@ -84,6 +96,167 @@ describe('RealtimeOverview', () => { ); }); + it('should hide the database and user columns by default', async () => { + renderMySqlSelection(); + + await waitFor(() => + screen.getByTestId(`query-${TEST_MONGO_DB_QUERY_DATA.queryId}-host-cell`) + ); + + expect( + screen.queryByTestId( + `query-${TEST_MONGO_DB_QUERY_DATA.queryId}-database-cell` + ) + ).not.toBeInTheDocument(); + expect( + screen.queryByTestId( + `query-${TEST_MONGO_DB_QUERY_DATA.queryId}-user-cell` + ) + ).not.toBeInTheDocument(); + }); + + it('should render database and user columns from the payload once revealed', async () => { + renderMySqlSelection(); + + await waitFor(() => + screen.getByTestId(`query-${TEST_MONGO_DB_QUERY_DATA.queryId}-host-cell`) + ); + + fireEvent.click(screen.getByLabelText('Show/Hide columns')); + fireEvent.click(await screen.findByLabelText('Database')); + fireEvent.click(screen.getByLabelText('User')); + + await waitFor(() => + expect( + screen.getByTestId( + `query-${TEST_MONGO_DB_QUERY_DATA.queryId}-database-cell` + ) + ).toHaveTextContent('database-name') + ); + expect( + screen.getByTestId(`query-${TEST_MONGO_DB_QUERY_DATA.queryId}-user-cell`) + ).toHaveTextContent('username'); + }); + + it('should render elapsed time with millisecond precision, and 0 as a duration', async () => { + searchQueries.mockResolvedValue({ + queries: [ + { + ...TEST_MONGO_DB_QUERY_DATA, + queryExecutionDuration: '3ms', + queryId: 'query-ms', + }, + { + ...TEST_MONGO_DB_QUERY_DATA, + queryExecutionDuration: '0s', + queryId: 'query-zero', + }, + { + ...TEST_MONGO_DB_QUERY_DATA, + queryExecutionDuration: null, + queryId: 'query-missing', + }, + ], + }); + + renderComponent(); + + await waitFor(() => + expect( + screen.getByTestId('query-query-ms-elapsed-time-cell') + ).toHaveTextContent('0.003s') + ); + expect( + screen.getByTestId('query-query-zero-elapsed-time-cell') + ).toHaveTextContent('0.000s'); + expect( + screen.getByTestId('query-query-missing-elapsed-time-cell') + ).toHaveTextContent('Unavailable'); + }); + + it('should hide the transaction control toggle for a MongoDB selection', async () => { + renderComponent(); + + await waitFor(() => screen.getByTestId('realtime-overview-table')); + + expect( + screen.queryByTestId('overview-table-hide-commit-toggle') + ).not.toBeInTheDocument(); + }); + + it('should show the transaction control toggle for a MySQL selection', async () => { + renderMySqlSelection(); + + await waitFor(() => + expect( + screen.getByTestId('overview-table-hide-commit-toggle') + ).toHaveTextContent('Hide transaction control') + ); + }); + + it('should not offer services of another technology while one is selected', async () => { + getRunningSessions.mockResolvedValue([ + TEST_REAL_TIME_SESSION, + TEST_REAL_TIME_SESSION_MYSQL, + ]); + + renderComponent({ + initialEntry: `/rta/overview?serviceIds=${TEST_REAL_TIME_SESSION_MYSQL.serviceId}`, + }); + + fireEvent.click(await screen.findByTitle('Open')); + + expect( + await screen.findByTestId( + `service-option-${TEST_REAL_TIME_SESSION_MYSQL.serviceId}` + ) + ).not.toHaveAttribute('aria-disabled', 'true'); + expect( + screen.getByTestId(`service-option-${TEST_REAL_TIME_SESSION.serviceId}`) + ).toHaveAttribute('aria-disabled', 'true'); + }); + + it('should watch only the first technology when the URL names both', async () => { + getRunningSessions.mockResolvedValue([ + TEST_REAL_TIME_SESSION, + TEST_REAL_TIME_SESSION_MYSQL, + ]); + + renderComponent({ + initialEntry: `/rta/overview?serviceIds=${TEST_REAL_TIME_SESSION_MYSQL.serviceId}&serviceIds=${TEST_REAL_TIME_SESSION.serviceId}`, + }); + + await waitFor(() => + expect(searchQueries).toHaveBeenLastCalledWith({ + serviceIds: [TEST_REAL_TIME_SESSION_MYSQL.serviceId], + }) + ); + }); + + it('should keep elapsed time pinned without offering pin controls', async () => { + renderComponent(); + + await waitFor(() => + screen.getByTestId(`query-${TEST_MONGO_DB_QUERY_DATA.queryId}-host-cell`) + ); + + expect( + screen.getByTestId( + `query-${TEST_MONGO_DB_QUERY_DATA.queryId}-elapsed-time-cell` + ) + ).toHaveAttribute('data-pinned', 'true'); + + fireEvent.click(screen.getByLabelText('Show/Hide columns')); + + await waitFor(() => expect(screen.getByRole('menu')).toBeInTheDocument()); + // The icon assertion does not depend on MRT's tooltip labelling, so it still + // holds if those labels change. + expect(screen.queryByTestId('PushPinIcon')).not.toBeInTheDocument(); + expect(screen.queryByLabelText('Pin to left')).not.toBeInTheDocument(); + expect(screen.queryByLabelText('Pin to right')).not.toBeInTheDocument(); + expect(screen.queryByLabelText('Unpin')).not.toBeInTheDocument(); + }); + it("shouldn't call api if no serviceIds are provided", async () => { renderComponent({ initialEntry: '/rta/overview' }); diff --git a/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.tsx b/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.tsx index 5637ad7056e..adcce8a011f 100644 --- a/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.tsx +++ b/ui/apps/pmm/src/pages/rta/overview/RealtimeOverview.tsx @@ -1,4 +1,4 @@ -import { useRef, useState } from 'react'; +import { useMemo, useRef, useState } from 'react'; import type { FC } from 'react'; import { Navigate, @@ -9,6 +9,7 @@ import { useDetailsPaneNavigation } from '@percona/percona-ui'; import { RealtimePage } from '../components/rta-page'; import { useRealtimeQueries, useRealtimeSessions } from 'hooks/api/useRealtime'; import OverviewTable from './table/OverviewTable'; +import { isTransactionControl } from './table/OverviewTable.utils'; import { DetailsPane } from './details-pane'; import type { QueryData } from 'types/rta.types'; import { Icon } from 'components/icon'; @@ -17,15 +18,32 @@ import { createRealtimeSessionsUrl } from 'utils/link.utils'; import Stack from '@mui/material/Stack'; import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; +import Divider from '@mui/material/Divider'; +import FormControlLabel from '@mui/material/FormControlLabel'; +import Switch from '@mui/material/Switch'; +import Tooltip from '@mui/material/Tooltip'; import { ServicesAutocompleteInput } from '../components/services-autocomplete-input'; import { AutoRefreshSelect } from './auto-refresh-select'; import { exportRtaQueriesToCsv } from './export/exportRtaQueriesToCsv'; +import { ServiceType } from 'types/services.types'; +import { resolveSelection } from './RealtimeOverview.utils'; const EMPTY_QUERIES: QueryData[] = []; const RealtimeOverviewPage: FC = () => { const [searchParams, setSearchParams] = useSearchParams(); - const serviceIds = searchParams.getAll('serviceIds'); + const requestedServiceIds = useMemo( + () => searchParams.getAll('serviceIds'), + [searchParams] + ); + const { data: sessions = [], isLoading } = useRealtimeSessions(); + // One view of live queries shows one technology. The picker enforces that, but + // a URL can still name services of both (starting sessions is not restricted), + // so the first service's technology wins and the rest are ignored. + const { serviceIds, serviceType } = useMemo( + () => resolveSelection(requestedServiceIds, sessions), + [requestedServiceIds, sessions] + ); const [fetching, setFetching] = useState(serviceIds.length > 0); const [refreshInterval, setRefreshInterval] = useState(2000); const { data: queries, refetch } = useRealtimeQueries( @@ -35,13 +53,25 @@ const RealtimeOverviewPage: FC = () => { refetchInterval: refreshInterval, } ); - const tableQueries = queries ?? EMPTY_QUERIES; + const [hideCommit, setHideCommit] = useState(false); + // Transaction-control statements are a MySQL concern, so the toggle is only + // offered while MySQL services are being watched. + const isMySqlSelection = serviceType === ServiceType.mysql; // Synced from the table after filters; details-pane arrows use this list, not the full API result. const [navigableQueries, setNavigableQueries] = useState([]); const [selectedQuery, setSelectedQuery] = useState(); // We need to store the previous fetching state to restore it when the details pane is closed const previousFetchingState = useRef(fetching); - const { data: sessions = [], isLoading } = useRealtimeSessions(); + // Gated on the toggle being on screen: when the selection stops being MySQL + // the control unmounts, and a filter nobody can see must not keep hiding rows + // (nor silently shrink the CSV export, which exports the filtered rows). + const hideTransactionControl = hideCommit && isMySqlSelection; + const tableQueries = useMemo(() => { + const allQueries = queries ?? EMPTY_QUERIES; + return hideTransactionControl + ? allQueries.filter((query) => !isTransactionControl(query)) + : allQueries; + }, [queries, hideTransactionControl]); const handleQuerySelected = (query: QueryData) => { setSelectedQuery(query); @@ -92,6 +122,7 @@ const RealtimeOverviewPage: FC = () => { ( @@ -120,6 +151,7 @@ const RealtimeOverviewPage: FC = () => { data-testid="overview-table-services-autocomplete-input" sessions={sessions} serviceIds={serviceIds} + singleTechnology onServiceIdsChange={handleServiceIdsChange} inputProps={{ size: 'small', @@ -200,6 +232,34 @@ const RealtimeOverviewPage: FC = () => { {Messages.export} )} + {/* This filters the rows, it does not drive live updates: keep it + out of the auto-refresh / playback group so that group reads as + one control. */} + {isMySqlSelection && ( + <> + + + + setHideCommit(event.target.checked) + } + /> + } + label={Messages.hideCommit} + sx={{ whiteSpace: 'nowrap', mr: 0 }} + /> + + + )}