diff --git a/inputs/mongodb/exporter/dsn_fix/dsn_fix.go b/inputs/mongodb/exporter/dsn_fix/dsn_fix.go
deleted file mode 100644
index 96dbda1..0000000
--- a/inputs/mongodb/exporter/dsn_fix/dsn_fix.go
+++ /dev/null
@@ -1,43 +0,0 @@
-// mongodb_exporter
-// Copyright (C) 2017 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 dsn_fix
-
-import (
- "net/url"
-
- "go.mongodb.org/mongo-driver/mongo/options"
-)
-
-// ClientOptionsForDSN applies URI to Client.
-func ClientOptionsForDSN(dsn string) (*options.ClientOptions, error) {
- clientOptions := options.Client().ApplyURI(dsn)
-
- // Workaround for PMM-9320
- // if username or password is set, need to replace it with correctly parsed credentials.
- parsedDsn, err := url.Parse(dsn)
- if err != nil {
- // for non-URI, do nothing (PMM-10265)
- return clientOptions, nil
- }
- username := parsedDsn.User.Username()
- password, _ := parsedDsn.User.Password()
- if username != "" || password != "" {
- clientOptions = clientOptions.SetAuth(options.Credential{Username: username, Password: password})
- }
-
- return clientOptions, nil
-}
diff --git a/inputs/mongodb/exporter/metrics_test.go b/inputs/mongodb/exporter/metrics_test.go
deleted file mode 100644
index 8f65fca..0000000
--- a/inputs/mongodb/exporter/metrics_test.go
+++ /dev/null
@@ -1,218 +0,0 @@
-// mongodb_exporter
-// Copyright (C) 2017 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 exporter
-
-import (
- "testing"
- "time"
-
- "github.com/AlekSi/pointer"
- "github.com/prometheus/client_golang/prometheus"
- "github.com/stretchr/testify/assert"
- "go.mongodb.org/mongo-driver/bson/primitive"
-)
-
-// Test metric renaming and labeling.
-func TestMetricName(t *testing.T) {
- tcs := []struct {
- prefix string
- name string
- wantMetric string
- wantLabel string
- }{
- {
- prefix: "serverStatus.metrics.commands.saslStart.",
- name: "total",
- wantMetric: "mongodb_ss_metrics_commands_saslStart_total",
- },
- {
- prefix: "serverStatus.metrics.commands._configsvrShardCollection.",
- name: "failed",
- wantMetric: "mongodb_ss_metrics_commands_configsvrShardCollection_failed",
- },
- {
- prefix: "serverStatus.wiredTiger.lock.",
- name: "metadata lock acquisitions",
- wantMetric: "mongodb_ss_wt_lock_metadata_lock_acquisitions",
- },
- {
- prefix: "serverStatus.wiredTiger.perf.",
- name: "file system write latency histogram (bucket 5) - 500-999ms",
- wantMetric: "mongodb_ss_wt_perf",
- wantLabel: "perf_bucket",
- },
- {
- prefix: "serverStatus.wiredTiger.transaction.",
- name: "rollback to stable updates removed from lookaside",
- wantMetric: "mongodb_ss_wt_txn_rollback_to_stable_updates_removed_from_lookaside",
- },
- }
-
- for _, tc := range tcs {
- metric, label := nameAndLabel(tc.prefix, tc.name)
- assert.Equal(t, tc.wantMetric, metric, tc.prefix+tc.name)
- assert.Equal(t, tc.wantLabel, label, tc.prefix+tc.name)
- }
-}
-
-func TestPrometeusize(t *testing.T) {
- tests := []struct {
- in string
- want string
- }{
- {
- in: "serverStatus.wiredTiger.transaction.transaction checkpoint most recent time (msecs)",
- want: "mongodb_ss_wt_txn_transaction_checkpoint_most_recent_time_msecs",
- },
- {
- in: "serverStatus.wiredTiger.thread-yield.page acquire time sleeping (usecs)",
- want: "mongodb_ss_wt_thread_yield_page_acquire_time_sleeping_usecs",
- },
- {
- in: "serverStatus.opLatencies.reads.latency",
- want: "mongodb_ss_opLatencies_reads_latency",
- },
- {
- in: "replSetGetStatus.optimes.lastCommittedOpTime.t",
- want: "mongodb_rs_optimes_lastCommittedOpTime_t",
- },
- {
- in: "systemMetrics.memory.Active_kb",
- want: "mongodb_sys_memory_Active_kb",
- },
- {
- in: "local.oplog.rs.stats.wiredTiger.block-manager.checkpoint size",
- want: "mongodb_oplog_stats_wt_block_manager_checkpoint_size",
- },
- {
- in: "local.oplog.rs.stats.storageSize",
- want: "mongodb_oplog_stats_storageSize",
- },
- {
- in: "collstats_storage.wiredTiger.xxx",
- want: "mongodb_collstats_storage_wt_xxx",
- },
-
- {
- in: "collstats_storage.indexDetails.xxx",
- want: "mongodb_collstats_storage_idx_xxx",
- },
- {
- in: "collStats.storageStats.xxx",
- want: "mongodb_collstats_storage_xxx",
- },
- {
- in: "collStats.latencyStats.xxx",
- want: "mongodb_collstats_latency_xxx",
- },
- }
-
- for _, test := range tests {
- got := prometheusize(test.in)
- assert.Equal(t, test.want, got)
- }
-}
-
-// Test supported value types conversion.
-func TestMakeRawMetric(t *testing.T) {
- prefix := "serverStatus.transactions."
- name := "retriedCommandsCount"
- testCases := []struct {
- value interface{}
- wantVal *float64
- }{
- {value: true, wantVal: pointer.ToFloat64(1)},
- {value: false, wantVal: pointer.ToFloat64(0)},
- {value: int32(1), wantVal: pointer.ToFloat64(1)},
- {value: int64(2), wantVal: pointer.ToFloat64(2)},
- {value: float32(1.23), wantVal: pointer.ToFloat64(float64(float32(1.23)))},
- {value: float64(1.23), wantVal: pointer.ToFloat64(1.23)},
- {value: primitive.A{}, wantVal: nil},
- {value: primitive.Timestamp{}, wantVal: nil},
- {value: "zapp", wantVal: nil},
- {value: []byte{}, wantVal: nil},
- {value: time.Date(2020, 6, 15, 0, 0, 0, 0, time.UTC), wantVal: nil},
- }
-
- ln := make([]string, 0) // needs pre-allocation to accomplish pre-allocation for labels
- lv := make([]string, 0)
-
- fqName := prometheusize(prefix + name)
- help := metricHelp(prefix, name)
-
- for _, tc := range testCases {
- var want *rawMetric
- if tc.wantVal != nil {
- want = &rawMetric{
- fqName: fqName,
- help: help,
- ln: ln,
- lv: lv,
- val: *tc.wantVal,
- vt: prometheus.CounterValue,
- }
- }
-
- m, err := makeRawMetric(prefix, name, tc.value, nil)
-
- assert.NoError(t, err)
- assert.Equal(t, want, m)
- }
-}
-
-func TestRawToCompatibleRawMetric(t *testing.T) {
- testCases := []struct {
- in *rawMetric
- want *rawMetric
- }{
- {
- in: &rawMetric{
- fqName: "mongodb_ss_opLatencies_commands_latency",
- val: float64(1),
- vt: prometheus.UntypedValue,
- },
- want: &rawMetric{
- fqName: "mongodb_ss_opLatencies_latency",
- help: "mongodb_ss_opLatencies_latency",
- ln: []string{"op_type"},
- lv: []string{"commands"},
- val: 1,
- vt: 3,
- },
- },
- {
- in: &rawMetric{
- fqName: "mongodb_ss_opLatencies_commands_ops",
- val: float64(1),
- vt: prometheus.UntypedValue,
- },
- want: &rawMetric{
- fqName: "mongodb_ss_opLatencies_ops",
- help: "mongodb_ss_opLatencies_ops",
- ln: []string{"op_type"},
- lv: []string{"commands"},
- val: 1,
- vt: 3,
- },
- },
- }
-
- for _, tc := range testCases {
- m := metricRenameAndLabel(tc.in, specialConversions())
- assert.Equal(t, m[0], tc.want)
- }
-}