rm unused files

This commit is contained in:
yushuangyu 2022-07-13 11:50:39 +08:00
parent 0643dbf9ef
commit 98c7a4faa1
2 changed files with 0 additions and 261 deletions

View File

@ -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
}

View File

@ -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)
}
}