diff --git a/plugins/outputs/prometheus_client/prometheus_client.go b/plugins/outputs/prometheus_client/prometheus_client.go
index 50a9224cd77c091f0b1c512f380f0add4a69caeb..f13fe726c59b968eefe0bf42d15a6b3888d026d5 100644
--- a/plugins/outputs/prometheus_client/prometheus_client.go
+++ b/plugins/outputs/prometheus_client/prometheus_client.go
@@ -79,7 +79,12 @@ func (p *PrometheusClient) Write(metrics []telegraf.Metric) error {
 		}
 
 		for n, val := range point.Fields() {
-			mname := fmt.Sprintf("%s_%s", key, n)
+			var mname string
+			if n == "value" {
+				mname = key
+			} else {
+				mname = fmt.Sprintf("%s_%s", key, n)
+			}
 			if _, ok := p.metrics[mname]; !ok {
 				p.metrics[mname] = prometheus.NewUntypedVec(
 					prometheus.UntypedOpts{
diff --git a/plugins/outputs/prometheus_client/prometheus_client_test.go b/plugins/outputs/prometheus_client/prometheus_client_test.go
index 13b6beff58a34e52fcbac7569fb8c7af5393fadd..15ed7b7e451f8eab02bbc96dbd3b9ddfe899eef0 100644
--- a/plugins/outputs/prometheus_client/prometheus_client_test.go
+++ b/plugins/outputs/prometheus_client/prometheus_client_test.go
@@ -46,8 +46,8 @@ func TestPrometheusWritePointEmptyTag(t *testing.T) {
 		value float64
 		tags  map[string]string
 	}{
-		{"test_point_1_value", 0.0, tags},
-		{"test_point_2_value", 1.0, tags},
+		{"test_point_1", 0.0, tags},
+		{"test_point_2", 1.0, tags},
 	}
 
 	var acc testutil.Accumulator
@@ -78,8 +78,8 @@ func TestPrometheusWritePointEmptyTag(t *testing.T) {
 		name  string
 		value float64
 	}{
-		{"test_point_3_value", 0.0},
-		{"test_point_4_value", 1.0},
+		{"test_point_3", 0.0},
+		{"test_point_4", 1.0},
 	}
 
 	require.NoError(t, p.Gather(&acc))