rm unused files
This commit is contained in:
parent
0643dbf9ef
commit
98c7a4faa1
|
@ -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 <https://www.gnu.org/licenses/>.
|
||||
|
||||
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
|
||||
}
|
|
@ -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 <https://www.gnu.org/licenses/>.
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue