Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
147 commits
Select commit Hold shift + click to select a range
3f3c960
PMM-12548 Admin part.
JiriCtvrtka Mar 5, 2025
eda4fec
PMM-12548 New mongo agents structure.
JiriCtvrtka Mar 5, 2025
2d29da3
PMM-12548 Changes for agent.
JiriCtvrtka Mar 13, 2025
1aba2ea
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Mar 13, 2025
1abd56f
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Mar 24, 2025
8bc1ca3
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Mar 24, 2025
755b360
PMM-12548 Compose.
JiriCtvrtka Mar 25, 2025
3513beb
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Mar 25, 2025
03308e5
PMM-12548 Change SSL to TLS since its deprecated.
JiriCtvrtka Mar 27, 2025
6e707e9
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Mar 27, 2025
6bceb49
PMM-12548 Slowlog prefixes for testing, tls instead ssl.
JiriCtvrtka Mar 28, 2025
7f765ec
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Mar 28, 2025
47f721b
PMM-12548 Reader test.
JiriCtvrtka Mar 28, 2025
1a0f27d
PMM-12548 Percona Mongo, formatting.
JiriCtvrtka Mar 28, 2025
298fdbb
PMM-12548 Add aggregator.
JiriCtvrtka Apr 4, 2025
2d87252
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Apr 4, 2025
170b9e2
PMM-12548 Renaming to mongolog.
JiriCtvrtka Apr 7, 2025
898abbd
PMM-12548 Managed part, changes in agent.
JiriCtvrtka Apr 7, 2025
d6be814
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Apr 7, 2025
7d2d105
PMM-12548 Small refactor.
JiriCtvrtka Apr 7, 2025
b804de8
PMM-12548 Move file reader.
JiriCtvrtka Apr 11, 2025
4b40566
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Apr 11, 2025
0c17f11
PMM-12548 Fix.
JiriCtvrtka Apr 11, 2025
cf7cb81
PMM-12548 Empty line.
JiriCtvrtka Apr 11, 2025
be53fbf
PMM-12548 Percona Toolkit with json tags.
JiriCtvrtka Apr 15, 2025
49a18ae
PMM-12548 Sum.
JiriCtvrtka Apr 15, 2025
7427063
PMM-12548 Refactor, logic changes.
JiriCtvrtka Apr 24, 2025
e572dbf
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Apr 24, 2025
eca8c3c
PMM-12548 Missed add/change agents in API.
JiriCtvrtka Apr 24, 2025
6d6469e
PMM-12548 Lint.
JiriCtvrtka Apr 25, 2025
ff27a35
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Apr 25, 2025
83f14f0
PMM-12548 Fix Mongolog admin response.
JiriCtvrtka Apr 28, 2025
17890a0
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Apr 28, 2025
ba33053
PMM-12548 Lint.
JiriCtvrtka Apr 28, 2025
5e80b7a
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Apr 28, 2025
dcbe9f7
PMM-12548 Lint.
JiriCtvrtka Apr 29, 2025
bc67e50
PMM-12548 Lint.
JiriCtvrtka Apr 29, 2025
812d860
PMM-12548 Lint.
JiriCtvrtka Apr 29, 2025
14ca0e0
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Apr 29, 2025
1c49a7f
PMM-12548 As discussed slowlog now using utils.
JiriCtvrtka Apr 29, 2025
318e815
PMM-12548 Lint.
JiriCtvrtka Apr 29, 2025
d4b8f27
PMM-12548 Prioritize context, done chan.
JiriCtvrtka Apr 29, 2025
c23bc7e
PMM-12548 Lint.
JiriCtvrtka Apr 29, 2025
daf3a8a
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Apr 30, 2025
e85fbe4
PMM-12548 Percona Toolkit.
JiriCtvrtka Apr 30, 2025
be8d469
PMM-12548 Percona distribution back to compose.
JiriCtvrtka May 1, 2025
8cf4828
PMM-12548 Error in case of not existing file.
JiriCtvrtka May 1, 2025
8fd0be3
PMM-12548 Refactor.
JiriCtvrtka May 1, 2025
bc49fb3
PMM-12548 Proper mongolog collector test.
JiriCtvrtka May 1, 2025
5d0093d
PMM-12548 Makefile change for mongolog.
JiriCtvrtka May 1, 2025
1a8176f
PMM-12548 Cancel.
JiriCtvrtka May 1, 2025
2f377db
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka May 1, 2025
e59d8c6
PMM-12548 Fix concurency.
JiriCtvrtka May 1, 2025
5f1b512
PMM-12548 Fix.
JiriCtvrtka May 1, 2025
a89f791
PMM-12548 Waitgroup.
JiriCtvrtka May 1, 2025
5c84152
PMM-12548 Close channels after wg is done.
JiriCtvrtka May 1, 2025
5bdeeeb
PMM-12548 Fix compose.
JiriCtvrtka May 1, 2025
5f4b0c6
PMM-12548 Fix deprecated SSL in Mongo Action.
JiriCtvrtka May 1, 2025
b46eb61
PMM-12548 Refactor Phase 1.
JiriCtvrtka May 2, 2025
ccebb7e
PMM-12548 Refactor Phase 2.
JiriCtvrtka May 2, 2025
412d372
PMM-12548 Small fix.
JiriCtvrtka May 2, 2025
6f6580c
PMM-12548 Imports fix.
JiriCtvrtka May 2, 2025
dfe7147
PMM-12548 Small refactor.
JiriCtvrtka May 2, 2025
5287c6c
PMM-12548 Fix.
JiriCtvrtka May 2, 2025
01de802
PMM-12548 Tidy.
JiriCtvrtka May 2, 2025
c437511
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka May 2, 2025
0fe6a6f
PMM-12548 Remove mkdir in make if solve percona permissons problem.
JiriCtvrtka May 2, 2025
bfb49eb
Revert "PMM-12548 Remove mkdir in make if solve percona permissons pr…
JiriCtvrtka May 2, 2025
d1c66ca
PMM-12548 Lint.
JiriCtvrtka May 2, 2025
cc80f4a
PMM-12548 Proper status in case of error.
JiriCtvrtka May 2, 2025
255527b
PMM-12548 Lint - cleanup instad defer.
JiriCtvrtka May 2, 2025
bef9657
PMM-12548 Lint.
JiriCtvrtka May 2, 2025
eb75cf9
PMM-12548 Lint.
JiriCtvrtka May 2, 2025
64f3d07
PMM-12548 Remove forgotten defer.
JiriCtvrtka May 2, 2025
fef7f4f
PMM-12548 Format.
JiriCtvrtka May 2, 2025
549bc26
PMM-12548 Lint.
JiriCtvrtka May 3, 2025
c85d7ae
PMM-12548 Lint.
JiriCtvrtka May 3, 2025
4c81f0d
PMM-12548 Remove TODO.
JiriCtvrtka May 3, 2025
557f769
PMM-12548 Replace TODOs with ticket numbers.
JiriCtvrtka May 3, 2025
8addded
PMM-12548 Remove TODOs.
JiriCtvrtka May 3, 2025
27882bd
PMM-12548 Mongo log full chan check for now.
JiriCtvrtka May 3, 2025
53457b8
PMM-12548 Gen after removed comment.
JiriCtvrtka May 4, 2025
08646d5
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka May 15, 2025
f55bbec
PMM-12548 API tests for Mongolog.
JiriCtvrtka May 15, 2025
4e2d7f9
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka May 16, 2025
0c8e9d1
PMM-12548 Fix missing context.
JiriCtvrtka May 16, 2025
43f9cc6
PMM-12548 Lint.
JiriCtvrtka May 16, 2025
d06baa5
PMM-12548 Interface to any.
JiriCtvrtka May 16, 2025
eafda65
Update agent/agents/mongodb/mongolog/internal/mongolog.go
JiriCtvrtka May 16, 2025
ce34a79
Update agent/agents/mongodb/mongolog/internal/monitor.go
JiriCtvrtka May 16, 2025
a4b01f4
Update agent/agents/mongodb/mongolog/internal/monitor.go
JiriCtvrtka May 16, 2025
f9d584e
PMM-12548 Add t.Helper().
JiriCtvrtka May 16, 2025
f091286
Merge remote-tracking branch 'origin/PMM-12548-new-mongo-query-source…
JiriCtvrtka May 16, 2025
35304f4
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka May 16, 2025
d57db61
PMM-12548 Lint.
JiriCtvrtka May 19, 2025
9b0e9d4
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka May 19, 2025
edabf7c
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka May 20, 2025
5137aa0
PMM-12548 Testing of permissions for Mongo log file.
JiriCtvrtka May 22, 2025
c84e33f
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka May 22, 2025
f1ffaaa
PMM-12548 Debug.
JiriCtvrtka May 22, 2025
b6da5c0
PMM-12548 Precreate Mongo log files to fix permissions.
JiriCtvrtka May 22, 2025
b3e9069
PMM-12548 Debug umask.
JiriCtvrtka May 22, 2025
76cadfa
Revert "PMM-12548 Debug umask."
JiriCtvrtka May 22, 2025
ebfaf00
Revert "PMM-12548 Precreate Mongo log files to fix permissions."
JiriCtvrtka May 22, 2025
0fb928b
PMM-12548 Debug append logs.
JiriCtvrtka May 22, 2025
d5e6ea2
PMM-12548 Precreate Mongo log files to fix permissions.
JiriCtvrtka May 22, 2025
550e8a8
Merge branch 'v3' into PMM-12548-new-mongo-query-source
JiriCtvrtka May 22, 2025
dde90b0
PMM-12548 Required changes.
JiriCtvrtka May 23, 2025
b59ede0
PMM-12548 Remove debug.
JiriCtvrtka May 23, 2025
0115731
Merge remote-tracking branch 'origin/PMM-12548-new-mongo-query-source…
JiriCtvrtka May 23, 2025
1d1d4ed
PMM-12548 Leftover comment.
JiriCtvrtka May 23, 2025
e5b8865
PMM-12548 Lint.
JiriCtvrtka May 23, 2025
591f63d
PMM-12548 Format.
JiriCtvrtka May 23, 2025
1985230
Merge branch 'v3' into PMM-12548-new-mongo-query-source
JiriCtvrtka May 26, 2025
184db0d
PMM-12548 Typo.
JiriCtvrtka May 26, 2025
43f8bb1
PMM-12548 Format.
JiriCtvrtka May 26, 2025
b9a4e12
PMM-12548 Fixed structs of Mongolog.
JiriCtvrtka Jun 12, 2025
5eee0eb
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Jun 12, 2025
f39bcf9
PMM-12548 Lint.
JiriCtvrtka Jun 12, 2025
a427b70
PMM-12548 Refresh test data.
JiriCtvrtka Jun 12, 2025
c12b4ab
PMM-12548 Add client (remote).
JiriCtvrtka Jun 14, 2025
27b25db
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Jun 14, 2025
fcefe3a
PMM-12548 Fix gen after merge.
JiriCtvrtka Jun 14, 2025
38ef8db
PMM-12548 Add connection pool.
JiriCtvrtka Jun 14, 2025
a13e1d2
PMM-12548 Lint.
JiriCtvrtka Jun 14, 2025
0a013d7
PMM-12548 Remove $clusterTime and lsid in command.
JiriCtvrtka Jun 16, 2025
d0e30c0
PMM-12548 Refresh test data.
JiriCtvrtka Jun 16, 2025
c13129e
PMM-12548 Reorder keys in command.
JiriCtvrtka Jun 16, 2025
3b063fe
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Jun 16, 2025
b37dcc4
PMM-12548 Lint.
JiriCtvrtka Jun 16, 2025
f9e8cf7
PMM-12548 Refresh test data.
JiriCtvrtka Jun 16, 2025
6e25a61
PMM-12548 Add findandmodify as known key.
JiriCtvrtka Jun 16, 2025
49870e4
PMM-12548 Add comment why some keys needs to be first.
JiriCtvrtka Jun 16, 2025
019f51b
PMM-12548 Add specialised commands between recognised ones.
JiriCtvrtka Jun 16, 2025
3fe9f0b
PMM-12548 Improvement to detect isExplainable on PMM side.
JiriCtvrtka Jun 16, 2025
96aa6b4
PMM-12548 Refactor of new logic.
JiriCtvrtka Jun 16, 2025
d950de3
Merge branch 'v3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Jun 16, 2025
557b2b7
Merge branch 'v3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Jun 16, 2025
5f093e2
Merge branch 'v3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Jun 17, 2025
78e81b2
Merge branch 'v3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Jun 17, 2025
3de530d
Merge branch 'mainv3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Jun 20, 2025
f75f877
Merge branch 'v3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Jun 23, 2025
ffdeead
Update agent/Makefile
JiriCtvrtka Jun 23, 2025
2cca3a8
Update agent/agents/mongodb/mongolog/internal/monitor.go
JiriCtvrtka Jun 23, 2025
56e7e88
PMM-12548: Removed unnecessary part and added a comment.
JiriCtvrtka Jun 23, 2025
bb0b57a
PMM-12548 PT bump.
JiriCtvrtka Jun 23, 2025
20dbdc6
Merge branch 'v3' into PMM-12548-new-mongo-query-source
JiriCtvrtka Jun 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions admin/cmd/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ func getDefaultKongOptions(appName string) []kong.Option {

mongoDBQuerySources := []string{
management.MongodbQuerySourceProfiler,
management.MongodbQuerySourceMongolog,
management.MongodbQuerySourceNone,
}

Expand All @@ -159,13 +160,13 @@ func getDefaultKongOptions(appName string) []kong.Option {
"nodeIp": nodeinfo.PublicAddress,
"nodeTypeDefault": nodeTypeDefault,
"hostname": hostname,
"serviceTypesEnum": strings.Join(management.AllServiceTypesKeys, ","),
"serviceTypesEnum": strings.Join(management.AllServiceTypesKeys, ", "),
"defaultMachineID": defaultMachineID,
"distro": nodeinfo.Distro,
"metricsModesEnum": strings.Join(management.MetricsModes, ","),
"mysqlQuerySourcesEnum": strings.Join(mysqlQuerySources, ","),
"metricsModesEnum": strings.Join(management.MetricsModes, ", "),
"mysqlQuerySourcesEnum": strings.Join(mysqlQuerySources, ", "),
"mysqlQuerySourceDefault": mysqlQuerySources[0],
"mongoDbQuerySourcesEnum": strings.Join(mongoDBQuerySources, ","),
"mongoDbQuerySourcesEnum": strings.Join(mongoDBQuerySources, ", "),
"mongoDbQuerySourceDefault": mongoDBQuerySources[0],
"externalDefaultServiceName": management.DefaultServiceNameSuffix,
"externalDefaultGroupExporter": management.DefaultGroupExternalExporter,
Expand Down
110 changes: 110 additions & 0 deletions admin/commands/inventory/add_agent_qan_mongodb_mongolog_agent.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
// 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 (
"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 addAgentQANMongoDBMongologAgentResultT = commands.ParseTemplate(`
QAN MongoDB Mongolog 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 }}

Status : {{ .Agent.Status }}
Disabled : {{ .Agent.Disabled }}
Custom labels : {{ .Agent.CustomLabels }}
`)

type addAgentQANMongoDBMongologAgentResult struct {
Agent *agents.AddAgentOKBodyQANMongodbMongologAgent `json:"qan_mongodb_mongolog_agent"`
}

func (res *addAgentQANMongoDBMongologAgentResult) Result() {}

func (res *addAgentQANMongoDBMongologAgentResult) String() string {
return commands.RenderTemplate(addAgentQANMongoDBMongologAgentResultT, res)
}

// AddAgentQANMongoDBMongologAgentCommand is used by Kong for CLI flags and commands.
type AddAgentQANMongoDBMongologAgentCommand struct {
PMMAgentID string `arg:"" help:"The pmm-agent identifier which runs this instance"`
ServiceID string `arg:"" help:"Service identifier"`
Username string `arg:"" optional:"" help:"MongoDB username for scraping metrics"`
Password string `help:"MongoDB password for scraping metrics"`
CustomLabels map[string]string `mapsep:"," help:"Custom user-assigned labels"`
SkipConnectionCheck bool `help:"Skip connection check"`
MaxQueryLength int32 `placeholder:"NUMBER" help:"Limit query length in QAN (default: server-defined; -1: no limit)"`
DisableQueryExamples bool `name:"disable-queryexamples" help:"Disable collection of query examples"`
TLS bool `help:"Use TLS to connect to the database"`
TLSSkipVerify bool `help:"Skip TLS certificates validation"`
TLSCertificateKeyFile string `help:"Path to TLS certificate PEM file"`
TLSCertificateKeyFilePassword string `help:"Password for certificate"`
TLSCaFile string `help:"Path to certificate authority file"`
AuthenticationMechanism string `help:"Authentication mechanism. Default is empty. Use MONGODB-X509 for ssl certificates"`

flags.LogLevelFatalFlags
}

// RunCmd executes the AddAgentQANMongoDBMongologAgentCommand and returns the result.
func (cmd *AddAgentQANMongoDBMongologAgentCommand) RunCmd() (commands.Result, error) {
customLabels := commands.ParseCustomLabels(cmd.CustomLabels)

tlsCertificateKey, err := commands.ReadFile(cmd.TLSCertificateKeyFile)
if err != nil {
return nil, err
}
tlsCa, err := commands.ReadFile(cmd.TLSCaFile)
if err != nil {
return nil, err
}

params := &agents.AddAgentParams{
Body: agents.AddAgentBody{
QANMongodbMongologAgent: &agents.AddAgentParamsBodyQANMongodbMongologAgent{
PMMAgentID: cmd.PMMAgentID,
ServiceID: cmd.ServiceID,
Username: cmd.Username,
Password: cmd.Password,
CustomLabels: customLabels,
SkipConnectionCheck: cmd.SkipConnectionCheck,
MaxQueryLength: cmd.MaxQueryLength,
TLS: cmd.TLS,
TLSSkipVerify: cmd.TLSSkipVerify,
TLSCertificateKey: tlsCertificateKey,
TLSCertificateKeyFilePassword: cmd.TLSCertificateKeyFilePassword,
TLSCa: tlsCa,
AuthenticationMechanism: cmd.AuthenticationMechanism,
LogLevel: cmd.LogLevelFatalFlags.LogLevel.EnumValue(),
},
},
Context: commands.Ctx,
}

resp, err := client.Default.AgentsService.AddAgent(params)
if err != nil {
return nil, err
}
return &addAgentQANMongoDBMongologAgentResult{
Agent: resp.Payload.QANMongodbMongologAgent,
}, nil
}
1 change: 1 addition & 0 deletions admin/commands/inventory/inventory.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ type AddAgentCommand struct {
ProxysqlExporter AddAgentProxysqlExporterCommand `cmd:"" help:"Add proxysql_exporter to inventory"`

QANMongoDBProfilerAgent AddAgentQANMongoDBProfilerAgentCommand `cmd:"" name:"qan-mongodb-profiler-agent" help:"Add QAN MongoDB profiler agent to inventory"`
QANMongoDBMongologAgent AddAgentQANMongoDBMongologAgentCommand `cmd:"" name:"qan-mongodb-mongolog-agent" help:"Add QAN MongoDB mongolog agent to inventory"`
QANMySQLPerfSchemaAgent AddAgentQANMySQLPerfSchemaAgentCommand `cmd:"" name:"qan-mysql-perfschema-agent" help:"Add QAN MySQL perf schema agent to inventory"`
QANMySQLSlowlogAgent AddAgentQANMySQLSlowlogAgentCommand `cmd:"" name:"qan-mysql-slowlog-agent" help:"Add QAN MySQL slowlog agent to inventory"`
QANPostgreSQLPgStatementsAgent AddAgentQANPostgreSQLPgStatementsAgentCommand `cmd:"" name:"qan-postgresql-pgstatements-agent" help:"Add QAN PostgreSQL Stat Statements Agent to inventory"`
Expand Down
1 change: 1 addition & 0 deletions admin/commands/inventory/list_agents.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ var acceptableAgentTypes = map[string][]string{
types.AgentTypeQANMySQLPerfSchemaAgent: {types.AgentTypeName(types.AgentTypeQANMySQLPerfSchemaAgent), "qan-mysql-perfschema-agent"},
types.AgentTypeQANMySQLSlowlogAgent: {types.AgentTypeName(types.AgentTypeQANMySQLSlowlogAgent), "qan-mysql-slowlog-agent"},
types.AgentTypeQANMongoDBProfilerAgent: {types.AgentTypeName(types.AgentTypeQANMongoDBProfilerAgent), "qan-mongodb-profiler-agent"},
types.AgentTypeQANMongoDBMongologAgent: {types.AgentTypeName(types.AgentTypeQANMongoDBMongologAgent), "qan-mongodb-mongolog-agent"},
types.AgentTypeQANPostgreSQLPgStatementsAgent: {types.AgentTypeName(types.AgentTypeQANPostgreSQLPgStatementsAgent), "qan-postgresql-pgstatements-agent"},
types.AgentTypeQANPostgreSQLPgStatMonitorAgent: {types.AgentTypeName(types.AgentTypeQANPostgreSQLPgStatMonitorAgent), "qan-postgresql-pgstatmonitor-agent"},
types.AgentTypeRDSExporter: {types.AgentTypeName(types.AgentTypeRDSExporter), "rds-exporter"},
Expand Down
17 changes: 17 additions & 0 deletions admin/commands/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@ func agentsList(agentsRes *agents.ListAgentsOK, nodeID string) []listResultAgent
agentsList = append(agentsList, qanMysqlPerfschemaAgents(agentsRes, pmmAgentIDs)...)
agentsList = append(agentsList, qanMysqlSlowlogAgents(agentsRes, pmmAgentIDs)...)
agentsList = append(agentsList, qanMongodbProfilerAgents(agentsRes, pmmAgentIDs)...)
agentsList = append(agentsList, qanMongodbMongologAgents(agentsRes, pmmAgentIDs)...)
agentsList = append(agentsList, qanPostgresqlPgstatementsAgents(agentsRes, pmmAgentIDs)...)
agentsList = append(agentsList, qanPostgresqlPgstatmonitorAgents(agentsRes, pmmAgentIDs)...)
agentsList = append(agentsList, externalExporters(agentsRes, nodeID)...)
Expand Down Expand Up @@ -434,6 +435,22 @@ func qanMongodbProfilerAgents(agentsRes *agents.ListAgentsOK, pmmAgentIDs map[st
return agentsList
}

func qanMongodbMongologAgents(agentsRes *agents.ListAgentsOK, pmmAgentIDs map[string]struct{}) []listResultAgent {
var agentsList []listResultAgent
for _, a := range agentsRes.Payload.QANMongodbMongologAgent {
if _, ok := pmmAgentIDs[a.PMMAgentID]; ok {
agentsList = append(agentsList, listResultAgent{
AgentType: types.AgentTypeQANMongoDBMongologAgent,
AgentID: a.AgentID,
ServiceID: a.ServiceID,
Status: getStatus(a.Status),
Disabled: a.Disabled,
})
}
}
return agentsList
}

func qanPostgresqlPgstatementsAgents(agentsRes *agents.ListAgentsOK, pmmAgentIDs map[string]struct{}) []listResultAgent {
var agentsList []listResultAgent
for _, a := range agentsRes.Payload.QANPostgresqlPgstatementsAgent {
Expand Down
26 changes: 26 additions & 0 deletions admin/commands/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -714,6 +714,32 @@ func TestQanMongodbProfilerAgents(t *testing.T) {
assert.Equal(t, types.AgentTypeQANMongoDBProfilerAgent, result[0].AgentType)
}

func TestQanMongodbMongologAgents(t *testing.T) {
t.Parallel()

pmmAgentIDs := map[string]struct{}{
"pmm-agent-1": {},
}

agentsRes := &agents_service.ListAgentsOK{
Payload: &agents_service.ListAgentsOKBody{
QANMongodbMongologAgent: []*agents_service.ListAgentsOKBodyQANMongodbMongologAgentItems0{
{
AgentID: "qan-mongodb-monoglog-1",
PMMAgentID: "pmm-agent-1",
ServiceID: "mongodb-service-1",
Status: pointer.ToString("AGENT_STATUS_RUNNING"),
},
},
},
}

result := qanMongodbMongologAgents(agentsRes, pmmAgentIDs)

assert.Len(t, result, 1)
assert.Equal(t, types.AgentTypeQANMongoDBMongologAgent, result[0].AgentType)
}

func TestQanPostgresqlPgstatementsAgents(t *testing.T) {
t.Parallel()

Expand Down
3 changes: 3 additions & 0 deletions admin/commands/management/add_mongodb.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ import (
const (
// MongodbQuerySourceProfiler defines available source name for profiler.
MongodbQuerySourceProfiler = "profiler"
// MongodbQuerySourceMongolog defines available source name for profiler.
MongodbQuerySourceMongolog = "mongolog"
// MongodbQuerySourceNone defines available source name for profiler.
MongodbQuerySourceNone = "none"
)
Expand Down Expand Up @@ -175,6 +177,7 @@ func (cmd *AddMongoDBCommand) RunCmd() (commands.Result, error) {
AgentPassword: cmd.AgentPassword,

QANMongodbProfiler: cmd.QuerySource == MongodbQuerySourceProfiler,
QANMongodbMongolog: cmd.QuerySource == MongodbQuerySourceMongolog,

CustomLabels: customLabels,
SkipConnectionCheck: cmd.SkipConnectionCheck,
Expand Down
5 changes: 4 additions & 1 deletion agent/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -105,9 +105,12 @@ _run:
ENV_UP_FLAGS ?= --force-recreate --renew-anon-volumes --remove-orphans

env-up: ## Start development environment
# to make slowlog rotation tests work
rm -fr testdata
# to make slowlog rotation tests work
mkdir -p testdata/mysql/slowlogs
# to make mongolog tests work
mkdir -p testdata/mongo/var/log/mongodb
touch testdata/mongo/var/log/mongodb/mongo.log testdata/mongo/var/log/mongodb/mongo_tls.log
chmod -R 0777 testdata

docker compose up $(ENV_UP_FLAGS)
Expand Down
Loading
Loading