diff --git a/go/dmi/hw_metrics_mgmt_service.pb.go b/go/dmi/hw_metrics_mgmt_service.pb.go
index 7bddd75..5d41dc2 100644
--- a/go/dmi/hw_metrics_mgmt_service.pb.go
+++ b/go/dmi/hw_metrics_mgmt_service.pb.go
@@ -569,6 +569,61 @@
 	return MetricNames_METRIC_NAME_UNDEFINED
 }
 
+type GetMetricResponse struct {
+	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
+	Metric               *Metric  `protobuf:"bytes,3,opt,name=metric,proto3" json:"metric,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *GetMetricResponse) Reset()         { *m = GetMetricResponse{} }
+func (m *GetMetricResponse) String() string { return proto.CompactTextString(m) }
+func (*GetMetricResponse) ProtoMessage()    {}
+func (*GetMetricResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_6b6c2f1384c11ff5, []int{8}
+}
+
+func (m *GetMetricResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetMetricResponse.Unmarshal(m, b)
+}
+func (m *GetMetricResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetMetricResponse.Marshal(b, m, deterministic)
+}
+func (m *GetMetricResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetMetricResponse.Merge(m, src)
+}
+func (m *GetMetricResponse) XXX_Size() int {
+	return xxx_messageInfo_GetMetricResponse.Size(m)
+}
+func (m *GetMetricResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetMetricResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetMetricResponse proto.InternalMessageInfo
+
+func (m *GetMetricResponse) GetStatus() Status {
+	if m != nil {
+		return m.Status
+	}
+	return Status_UNDEFINED_STATUS
+}
+
+func (m *GetMetricResponse) GetReason() Reason {
+	if m != nil {
+		return m.Reason
+	}
+	return Reason_UNDEFINED_REASON
+}
+
+func (m *GetMetricResponse) GetMetric() *Metric {
+	if m != nil {
+		return m.Metric
+	}
+	return nil
+}
+
 func init() {
 	proto.RegisterEnum("dmi.MetricNames", MetricNames_name, MetricNames_value)
 	proto.RegisterType((*MetricConfig)(nil), "dmi.MetricConfig")
@@ -579,74 +634,76 @@
 	proto.RegisterType((*MetricMetaData)(nil), "dmi.MetricMetaData")
 	proto.RegisterType((*Metric)(nil), "dmi.Metric")
 	proto.RegisterType((*GetMetricRequest)(nil), "dmi.GetMetricRequest")
+	proto.RegisterType((*GetMetricResponse)(nil), "dmi.GetMetricResponse")
 }
 
 func init() { proto.RegisterFile("dmi/hw_metrics_mgmt_service.proto", fileDescriptor_6b6c2f1384c11ff5) }
 
 var fileDescriptor_6b6c2f1384c11ff5 = []byte{
-	// 984 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xdd, 0x6e, 0xe3, 0x44,
-	0x14, 0xc7, 0xeb, 0x84, 0xed, 0xb6, 0x27, 0xfd, 0x70, 0xa7, 0x2d, 0x9b, 0xcd, 0x16, 0x36, 0x4d,
-	0x05, 0xaa, 0x0a, 0x4d, 0x56, 0xdd, 0x1b, 0x10, 0x7b, 0xe3, 0x3a, 0x6e, 0x6b, 0x91, 0xb8, 0xd1,
-	0xc4, 0x69, 0x77, 0xb9, 0x19, 0xcd, 0xc6, 0xd3, 0xd4, 0x52, 0x6d, 0x07, 0x7b, 0xdc, 0x7d, 0x04,
-	0xae, 0x90, 0xf8, 0x10, 0x8f, 0xc0, 0x1d, 0xdf, 0x4f, 0xc1, 0xe7, 0x3d, 0xbc, 0x04, 0x57, 0xc0,
-	0x35, 0xf2, 0x8c, 0x63, 0xa6, 0xdd, 0x14, 0xb4, 0x12, 0x77, 0xcd, 0xff, 0xfc, 0xce, 0x39, 0xff,
-	0x73, 0x6c, 0xcf, 0x14, 0x36, 0xbd, 0xc0, 0x6f, 0x9d, 0x3f, 0x23, 0x01, 0xe3, 0xb1, 0x3f, 0x4c,
-	0x48, 0x30, 0x0a, 0x38, 0x49, 0x58, 0x7c, 0xe9, 0x0f, 0x59, 0x73, 0x1c, 0x47, 0x3c, 0x42, 0x65,
-	0x2f, 0xf0, 0x6b, 0x2b, 0x19, 0x37, 0x8c, 0x82, 0x20, 0x0a, 0x13, 0xa9, 0xd7, 0x16, 0x64, 0xaa,
-	0xfc, 0xd5, 0xf8, 0x40, 0x83, 0x85, 0xae, 0x28, 0x62, 0x46, 0xe1, 0x99, 0x3f, 0x42, 0xbb, 0x30,
-	0x2f, 0x8b, 0x12, 0xdf, 0xab, 0x6a, 0x75, 0x6d, 0x7b, 0x69, 0x4f, 0x6f, 0x7a, 0x81, 0xdf, 0x94,
-	0x94, 0x43, 0x03, 0x96, 0xe0, 0x39, 0x89, 0xd8, 0x1e, 0xda, 0x82, 0x45, 0x3f, 0x21, 0x43, 0x91,
-	0x9b, 0xc6, 0xcc, 0xab, 0x96, 0xea, 0xda, 0xf6, 0x1c, 0x5e, 0xf0, 0x13, 0xb3, 0xd0, 0x32, 0x68,
-	0x1c, 0x5d, 0x5c, 0x10, 0x3f, 0xe4, 0x2c, 0xbe, 0xa4, 0x17, 0xd5, 0x72, 0x5d, 0xdb, 0x5e, 0xc4,
-	0x0b, 0x99, 0x68, 0xe7, 0x5a, 0xe3, 0x11, 0x2c, 0xca, 0x16, 0x79, 0x26, 0x7a, 0x03, 0x6e, 0xe7,
-	0xe3, 0x55, 0xb5, 0x7a, 0x79, 0xbb, 0xb2, 0xb7, 0xa2, 0xf8, 0x90, 0x0c, 0x9e, 0x10, 0x8d, 0x0f,
-	0x35, 0x58, 0xed, 0xf8, 0x09, 0xcf, 0x4b, 0x60, 0x96, 0x8c, 0xa3, 0x30, 0x61, 0x68, 0x0b, 0x66,
-	0x13, 0x4e, 0x79, 0x9a, 0xe4, 0xb3, 0x54, 0x44, 0x8d, 0xbe, 0x90, 0x70, 0x1e, 0xca, 0xa0, 0x98,
-	0xd1, 0x24, 0x0a, 0x85, 0xfb, 0x09, 0x84, 0x85, 0x84, 0xf3, 0x10, 0x7a, 0xf3, 0x1f, 0x3b, 0x99,
-	0xfd, 0xca, 0x1e, 0x52, 0xec, 0x24, 0xd7, 0xfd, 0x7c, 0xa7, 0xc1, 0xbd, 0x2b, 0xa1, 0x34, 0xa6,
-	0xdc, 0x8f, 0x42, 0xcc, 0xde, 0x4f, 0x59, 0xc2, 0xd1, 0x0e, 0x54, 0x3c, 0x96, 0x3d, 0x2d, 0x92,
-	0xa6, 0xf9, 0xa2, 0x2b, 0x7b, 0xf3, 0xa2, 0xe2, 0x20, 0xf5, 0x3d, 0x0c, 0x32, 0x9a, 0xfd, 0x8d,
-	0x9a, 0x70, 0x7b, 0x78, 0x4e, 0xc3, 0x11, 0x4b, 0x84, 0xbf, 0xa9, 0x9d, 0x8f, 0x66, 0xf0, 0x04,
-	0x42, 0x3b, 0xa0, 0xc7, 0x2c, 0x61, 0x9c, 0xf0, 0x88, 0x78, 0xec, 0x8c, 0xa6, 0x17, 0x5c, 0x58,
-	0x9e, 0x3b, 0x9a, 0xc1, 0x4b, 0x22, 0xe2, 0x46, 0x6d, 0xa9, 0xef, 0x57, 0x60, 0x3e, 0x1a, 0x33,
-	0xe9, 0xad, 0x71, 0x0e, 0x1b, 0xd3, 0x3d, 0xff, 0xdf, 0xcb, 0x6c, 0x7c, 0xa6, 0xc1, 0x92, 0x6c,
-	0xd5, 0x65, 0x9c, 0xb6, 0x29, 0xa7, 0x2f, 0xb4, 0x91, 0x07, 0xb0, 0x34, 0x8c, 0x82, 0x71, 0x14,
-	0xb2, 0x90, 0x4b, 0xbc, 0x74, 0x1d, 0x5f, 0x2c, 0x00, 0x91, 0xf1, 0x9a, 0x9a, 0x11, 0xd2, 0x80,
-	0x89, 0x8d, 0xcc, 0x2b, 0x58, 0xf6, 0x66, 0x37, 0x3e, 0xd7, 0x60, 0x56, 0xfa, 0x7a, 0xd1, 0x0f,
-	0xe1, 0x11, 0x2c, 0xe7, 0x78, 0xc0, 0x38, 0xf5, 0x28, 0xa7, 0xb9, 0xa7, 0x55, 0x25, 0x69, 0x32,
-	0x2c, 0x5e, 0x0a, 0x8a, 0xdf, 0x19, 0x8a, 0x9a, 0x70, 0xeb, 0x92, 0x5e, 0xa4, 0x2c, 0x7f, 0xb5,
-	0xaa, 0x22, 0xc7, 0x9c, 0x58, 0xeb, 0xb3, 0x30, 0x89, 0x62, 0x91, 0x28, 0xb1, 0x46, 0x02, 0xfa,
-	0x21, 0xcb, 0x5f, 0xf6, 0xc9, 0x2b, 0xf5, 0x40, 0x18, 0xa6, 0x44, 0xf4, 0xd6, 0x6e, 0xee, 0x9d,
-	0x79, 0x96, 0x2b, 0xbf, 0x32, 0x62, 0xe9, 0xbf, 0x46, 0xdc, 0xf9, 0xed, 0x16, 0x54, 0x94, 0x08,
-	0xba, 0x0b, 0xeb, 0x5d, 0xcb, 0xc5, 0xb6, 0x49, 0x1c, 0xa3, 0x6b, 0x91, 0x81, 0xd3, 0xb6, 0x0e,
-	0x6c, 0xc7, 0x6a, 0xeb, 0x33, 0x68, 0x0d, 0xf4, 0x3c, 0x74, 0x60, 0x38, 0xa4, 0xdf, 0xb3, 0xac,
-	0xb6, 0xae, 0xa1, 0x55, 0x58, 0xce, 0x55, 0xb3, 0x37, 0x20, 0xae, 0xd5, 0xed, 0xe9, 0x1e, 0xba,
-	0x0f, 0xf7, 0x14, 0x71, 0xd0, 0x37, 0x0e, 0x2d, 0xd2, 0xb3, 0xb0, 0x69, 0x39, 0xae, 0x71, 0x68,
-	0xe9, 0x0c, 0x6d, 0xc0, 0x9d, 0x1c, 0x70, 0xb1, 0xe1, 0xf4, 0x4d, 0xcb, 0x3e, 0xb1, 0xb0, 0xcc,
-	0xfe, 0x5e, 0x43, 0xf7, 0xa1, 0x36, 0x25, 0x7a, 0x72, 0xdc, 0x11, 0xd9, 0x3f, 0x68, 0x37, 0xa4,
-	0xef, 0xdb, 0x46, 0x5f, 0xff, 0x51, 0x43, 0xf5, 0xa2, 0xbb, 0x1a, 0xc5, 0x8f, 0x49, 0xef, 0xf8,
-	0xd4, 0xc2, 0xfa, 0x4f, 0x37, 0x11, 0xee, 0x84, 0xf8, 0x59, 0x43, 0x0d, 0x78, 0x65, 0x0a, 0x71,
-	0x6a, 0x9c, 0x58, 0x1d, 0xcb, 0x39, 0x74, 0x8f, 0xf4, 0x5f, 0x34, 0xb4, 0x5e, 0x2c, 0xa4, 0x6d,
-	0xf7, 0xdf, 0x95, 0xee, 0xbf, 0x28, 0xa1, 0xbb, 0xb0, 0xa6, 0xca, 0xa6, 0xd1, 0x33, 0x4c, 0xdb,
-	0x7d, 0xa2, 0x7f, 0x59, 0x42, 0x2f, 0xc3, 0x8a, 0x1a, 0x12, 0x8b, 0xd1, 0xbf, 0x2a, 0xa1, 0x4d,
-	0xd8, 0x78, 0x4e, 0x57, 0x17, 0xf6, 0x75, 0x09, 0xbd, 0x0e, 0x9b, 0x2a, 0x82, 0x2d, 0xa3, 0x4d,
-	0x4e, 0xb1, 0xed, 0x5e, 0xe1, 0xbe, 0x29, 0xa1, 0x6d, 0xd8, 0x52, 0xb9, 0x03, 0x63, 0xd0, 0x71,
-	0x9f, 0x10, 0xd3, 0xea, 0x74, 0xfa, 0x2a, 0xf9, 0x6d, 0x09, 0xad, 0x15, 0x4f, 0x0e, 0x1b, 0x5d,
-	0xe9, 0xfe, 0xa3, 0x32, 0xaa, 0xc2, 0xaa, 0xa2, 0x16, 0xe6, 0x3f, 0x2e, 0x2b, 0xe3, 0x66, 0x11,
-	0xe9, 0xfd, 0x93, 0xb2, 0xb2, 0xcb, 0x42, 0x56, 0x1b, 0x7d, 0xaa, 0x26, 0x8a, 0xf5, 0x92, 0xae,
-	0xf1, 0x58, 0xff, 0xa3, 0x8c, 0xee, 0x00, 0xba, 0x22, 0xcb, 0x8a, 0x7f, 0x96, 0x95, 0xdd, 0x2b,
-	0x01, 0xb5, 0xe6, 0x5f, 0x2a, 0x63, 0x3b, 0x8e, 0x85, 0x49, 0x7f, 0x80, 0xf1, 0xf1, 0xc0, 0x69,
-	0xdb, 0xce, 0xa1, 0x1c, 0xe5, 0xd7, 0x97, 0xf6, 0x7e, 0xd7, 0xe0, 0x55, 0x87, 0x72, 0xff, 0x92,
-	0xe5, 0x27, 0x60, 0x97, 0x86, 0x74, 0xc4, 0x02, 0xf1, 0xf5, 0x89, 0x6b, 0x15, 0xbd, 0x05, 0x15,
-	0xe5, 0x86, 0x41, 0xcb, 0xe2, 0x4b, 0x39, 0xa2, 0xb1, 0xf7, 0x8c, 0xc6, 0xcc, 0x6e, 0xd7, 0xe4,
-	0x47, 0x3b, 0xed, 0x12, 0xa2, 0x50, 0x1b, 0x8c, 0x3d, 0xca, 0xd9, 0xb4, 0xd3, 0x15, 0xd5, 0x9f,
-	0x3f, 0xcd, 0xaf, 0x5e, 0x16, 0xb5, 0xcd, 0x7f, 0x21, 0xf2, 0x16, 0x2d, 0x98, 0x2f, 0x0e, 0x04,
-	0xb4, 0x2e, 0xf8, 0xeb, 0x07, 0x44, 0xad, 0xa2, 0x94, 0xd9, 0x7f, 0xe7, 0xbd, 0xb7, 0x47, 0x3e,
-	0x3f, 0x4f, 0x9f, 0x36, 0x87, 0x51, 0xd0, 0x8a, 0xc6, 0x2c, 0x1c, 0x46, 0xb1, 0xd7, 0x92, 0x87,
-	0xec, 0x6e, 0x50, 0x4c, 0xbf, 0x2b, 0x2e, 0xed, 0x33, 0x3a, 0x64, 0xad, 0xcb, 0x87, 0xad, 0x51,
-	0xd4, 0xf2, 0x02, 0xff, 0xe9, 0xac, 0xf8, 0xe7, 0xe1, 0xe1, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff,
-	0xe0, 0xe9, 0x64, 0x8e, 0x87, 0x08, 0x00, 0x00,
+	// 1008 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0x4b, 0x6f, 0xdb, 0x46,
+	0x10, 0xc7, 0x4d, 0xa9, 0x71, 0xec, 0x91, 0x1f, 0xf4, 0xda, 0x4e, 0x14, 0xc5, 0x6d, 0x64, 0x19,
+	0x2d, 0x0c, 0xb7, 0x96, 0x02, 0xe7, 0xd2, 0x47, 0x2e, 0xb4, 0x44, 0xdb, 0x44, 0x25, 0x5a, 0x58,
+	0x51, 0x76, 0xd2, 0xcb, 0x62, 0x23, 0xae, 0x65, 0x02, 0x26, 0xa9, 0x92, 0x4b, 0xe7, 0xde, 0x4b,
+	0x4f, 0x05, 0xfa, 0x40, 0x3f, 0x42, 0x6f, 0x7d, 0x7f, 0x8a, 0x3e, 0xef, 0xed, 0xf7, 0x68, 0x0b,
+	0xf4, 0x56, 0x70, 0x97, 0x62, 0x57, 0x8e, 0xdc, 0x22, 0x40, 0x6e, 0xd2, 0x7f, 0x7e, 0xb3, 0xf3,
+	0xdf, 0xe1, 0x72, 0x96, 0xb0, 0xe9, 0xfa, 0x5e, 0xe3, 0xfc, 0x29, 0xf1, 0x19, 0x8f, 0xbc, 0x41,
+	0x4c, 0xfc, 0xa1, 0xcf, 0x49, 0xcc, 0xa2, 0x4b, 0x6f, 0xc0, 0xea, 0xa3, 0x28, 0xe4, 0x21, 0x2a,
+	0xba, 0xbe, 0x57, 0x59, 0x49, 0xb9, 0x41, 0xe8, 0xfb, 0x61, 0x10, 0x4b, 0xbd, 0xb2, 0x20, 0x53,
+	0xe5, 0xbf, 0xda, 0x87, 0x1a, 0x2c, 0x74, 0xc4, 0x22, 0xcd, 0x30, 0x38, 0xf3, 0x86, 0x68, 0x17,
+	0xe6, 0xe5, 0xa2, 0xc4, 0x73, 0xcb, 0x5a, 0x55, 0xdb, 0x5e, 0xda, 0xd3, 0xeb, 0xae, 0xef, 0xd5,
+	0x25, 0x65, 0x53, 0x9f, 0xc5, 0x78, 0x4e, 0x22, 0x96, 0x8b, 0xb6, 0x60, 0xd1, 0x8b, 0xc9, 0x40,
+	0xe4, 0x26, 0x11, 0x73, 0xcb, 0x85, 0xaa, 0xb6, 0x3d, 0x87, 0x17, 0xbc, 0xb8, 0x99, 0x6b, 0x29,
+	0x34, 0x0a, 0x2f, 0x2e, 0x88, 0x17, 0x70, 0x16, 0x5d, 0xd2, 0x8b, 0x72, 0xb1, 0xaa, 0x6d, 0x2f,
+	0xe2, 0x85, 0x54, 0xb4, 0x32, 0xad, 0xf6, 0x10, 0x16, 0x65, 0x89, 0x2c, 0x13, 0xbd, 0x0e, 0x37,
+	0xb3, 0xed, 0x95, 0xb5, 0x6a, 0x71, 0xbb, 0xb4, 0xb7, 0xa2, 0xf8, 0x90, 0x0c, 0x1e, 0x13, 0xb5,
+	0x8f, 0x34, 0x58, 0x6d, 0x7b, 0x31, 0xcf, 0x96, 0xc0, 0x2c, 0x1e, 0x85, 0x41, 0xcc, 0xd0, 0x16,
+	0xcc, 0xc6, 0x9c, 0xf2, 0x24, 0xce, 0xf6, 0x52, 0x12, 0x6b, 0xf4, 0x84, 0x84, 0xb3, 0x50, 0x0a,
+	0x45, 0x8c, 0xc6, 0x61, 0x20, 0xdc, 0x8f, 0x21, 0x2c, 0x24, 0x9c, 0x85, 0xd0, 0x1b, 0xff, 0xda,
+	0x49, 0xed, 0x97, 0xf6, 0x90, 0x62, 0x27, 0xbe, 0xea, 0xe7, 0x7b, 0x0d, 0xee, 0x4e, 0x84, 0x92,
+	0x88, 0x72, 0x2f, 0x0c, 0x30, 0x7b, 0x3f, 0x61, 0x31, 0x47, 0x3b, 0x50, 0x72, 0x59, 0xfa, 0xb4,
+	0x48, 0x92, 0x64, 0x8d, 0x2e, 0xed, 0xcd, 0x8b, 0x15, 0xfb, 0x89, 0xe7, 0x62, 0x90, 0xd1, 0xf4,
+	0x37, 0xaa, 0xc3, 0xcd, 0xc1, 0x39, 0x0d, 0x86, 0x2c, 0x16, 0xfe, 0xa6, 0x56, 0x3e, 0x9a, 0xc1,
+	0x63, 0x08, 0xed, 0x80, 0x1e, 0xb1, 0x98, 0x71, 0xc2, 0x43, 0xe2, 0xb2, 0x33, 0x9a, 0x5c, 0x70,
+	0x61, 0x79, 0xee, 0x68, 0x06, 0x2f, 0x89, 0x88, 0x13, 0xb6, 0xa4, 0xbe, 0x5f, 0x82, 0xf9, 0x70,
+	0xc4, 0xa4, 0xb7, 0xda, 0x39, 0x6c, 0x4c, 0xf7, 0xfc, 0xa2, 0x9b, 0x59, 0xfb, 0x5c, 0x83, 0x25,
+	0x59, 0xaa, 0xc3, 0x38, 0x6d, 0x51, 0x4e, 0x9f, 0xab, 0x23, 0xf7, 0x61, 0x69, 0x10, 0xfa, 0xa3,
+	0x30, 0x60, 0x01, 0x97, 0x78, 0xe1, 0x2a, 0xbe, 0x98, 0x03, 0x22, 0xe3, 0x55, 0x35, 0x23, 0xa0,
+	0x3e, 0x13, 0x1d, 0x99, 0x57, 0xb0, 0xf4, 0x64, 0xd7, 0xbe, 0xd0, 0x60, 0x56, 0xfa, 0x7a, 0xde,
+	0x17, 0xe1, 0x21, 0x2c, 0x67, 0xb8, 0xcf, 0x38, 0x75, 0x29, 0xa7, 0x99, 0xa7, 0x55, 0x25, 0x69,
+	0xbc, 0x59, 0xbc, 0xe4, 0xe7, 0xff, 0x53, 0x14, 0xd5, 0xe1, 0xc6, 0x25, 0xbd, 0x48, 0x58, 0x76,
+	0xb4, 0xca, 0x22, 0xa7, 0x39, 0xb6, 0xd6, 0x63, 0x41, 0x1c, 0x46, 0x22, 0x51, 0x62, 0xb5, 0x18,
+	0xf4, 0x43, 0x96, 0x1d, 0xf6, 0xf1, 0x91, 0xba, 0x2f, 0x0c, 0x53, 0x22, 0x6a, 0x6b, 0xd7, 0xd7,
+	0x4e, 0x3d, 0xcb, 0x96, 0x4f, 0x6c, 0xb1, 0xf0, 0x7f, 0x5b, 0xac, 0x7d, 0xa0, 0xc1, 0x8a, 0x52,
+	0xf5, 0x85, 0xbf, 0x61, 0x5b, 0x30, 0x2b, 0x6b, 0x65, 0x5d, 0x28, 0x29, 0x5e, 0x70, 0x16, 0xda,
+	0xf9, 0xfd, 0x06, 0x94, 0x14, 0x7b, 0xe8, 0x0e, 0xac, 0x77, 0x4c, 0x07, 0x5b, 0x4d, 0x62, 0x1b,
+	0x1d, 0x93, 0xf4, 0xed, 0x96, 0x79, 0x60, 0xd9, 0x66, 0x4b, 0x9f, 0x41, 0x6b, 0xa0, 0x67, 0xa1,
+	0x03, 0xc3, 0x26, 0xbd, 0xae, 0x69, 0xb6, 0x74, 0x0d, 0xad, 0xc2, 0x72, 0xa6, 0x36, 0xbb, 0x7d,
+	0xe2, 0x98, 0x9d, 0xae, 0xee, 0xa2, 0x7b, 0x70, 0x57, 0x11, 0xfb, 0x3d, 0xe3, 0xd0, 0x24, 0x5d,
+	0x13, 0x37, 0x4d, 0xdb, 0x31, 0x0e, 0x4d, 0x9d, 0xa1, 0x0d, 0xb8, 0x9d, 0x01, 0x0e, 0x36, 0xec,
+	0x5e, 0xd3, 0xb4, 0x4e, 0x4c, 0x2c, 0xb3, 0x7f, 0xd0, 0xd0, 0x3d, 0xa8, 0x4c, 0x89, 0x9e, 0x1c,
+	0xb7, 0x45, 0xf6, 0x8f, 0xda, 0x35, 0xe9, 0xfb, 0x96, 0xd1, 0xd3, 0x7f, 0xd2, 0x50, 0x35, 0xaf,
+	0xae, 0x46, 0xf1, 0x23, 0xd2, 0x3d, 0x3e, 0x35, 0xb1, 0xfe, 0xf3, 0x75, 0x84, 0x33, 0x26, 0x7e,
+	0xd1, 0x50, 0x0d, 0x5e, 0x9e, 0x42, 0x9c, 0x1a, 0x27, 0x66, 0xdb, 0xb4, 0x0f, 0x9d, 0x23, 0xfd,
+	0x57, 0x0d, 0xad, 0xe7, 0x0d, 0x69, 0x59, 0xbd, 0x77, 0xa5, 0xfb, 0x2f, 0x0b, 0xe8, 0x0e, 0xac,
+	0xa9, 0x72, 0xd3, 0xe8, 0x1a, 0x4d, 0xcb, 0x79, 0xac, 0x7f, 0x55, 0x40, 0xb7, 0x60, 0x45, 0x0d,
+	0x89, 0xc6, 0xe8, 0x5f, 0x17, 0xd0, 0x26, 0x6c, 0x3c, 0xa3, 0xab, 0x0d, 0xfb, 0xa6, 0x80, 0x5e,
+	0x83, 0x4d, 0x15, 0xc1, 0xa6, 0xd1, 0x22, 0xa7, 0xd8, 0x72, 0x26, 0xb8, 0x6f, 0x0b, 0x68, 0x1b,
+	0xb6, 0x54, 0xee, 0xc0, 0xe8, 0xb7, 0x9d, 0xc7, 0xa4, 0x69, 0xb6, 0xdb, 0x3d, 0x95, 0xfc, 0xae,
+	0x80, 0xd6, 0xf2, 0x27, 0x87, 0x8d, 0x8e, 0x74, 0xff, 0x71, 0x11, 0x95, 0x61, 0x55, 0x51, 0x73,
+	0xf3, 0x9f, 0x14, 0x95, 0xed, 0xa6, 0x11, 0xe9, 0xfd, 0xd3, 0xa2, 0xd2, 0xcb, 0x5c, 0x56, 0x0b,
+	0x7d, 0xa6, 0x26, 0x8a, 0xf6, 0x92, 0x8e, 0xf1, 0x48, 0xff, 0xa3, 0x88, 0x6e, 0x03, 0x9a, 0x90,
+	0xe5, 0x8a, 0x7f, 0x16, 0x95, 0xde, 0x2b, 0x01, 0x75, 0xcd, 0xbf, 0x54, 0xc6, 0xb2, 0x6d, 0x13,
+	0x93, 0x5e, 0x1f, 0xe3, 0xe3, 0xbe, 0xdd, 0xb2, 0xec, 0x43, 0xb9, 0x95, 0xdf, 0x5e, 0xda, 0xfb,
+	0x5b, 0x83, 0x57, 0x6c, 0xca, 0xbd, 0x4b, 0x96, 0x8d, 0xe1, 0x0e, 0x0d, 0xe8, 0x90, 0xf9, 0x62,
+	0x04, 0x88, 0xbb, 0x1d, 0xbd, 0x09, 0x25, 0xe5, 0x9a, 0x43, 0xcb, 0xe2, 0x15, 0x39, 0xa2, 0x91,
+	0xfb, 0x94, 0x46, 0xcc, 0x6a, 0x55, 0xe4, 0xe4, 0x98, 0x76, 0x13, 0x52, 0xa8, 0xf4, 0x47, 0x2e,
+	0xe5, 0x6c, 0xda, 0x88, 0x47, 0xd5, 0x67, 0xaf, 0x94, 0xc9, 0x1b, 0xab, 0xb2, 0xf9, 0x1f, 0x44,
+	0x56, 0xe2, 0x6d, 0x98, 0xcf, 0xe7, 0x03, 0x5a, 0x17, 0xfc, 0xd5, 0x29, 0x55, 0xb9, 0x75, 0x55,
+	0x96, 0xb9, 0xfb, 0xef, 0xbc, 0xf7, 0xd6, 0xd0, 0xe3, 0xe7, 0xc9, 0x93, 0xfa, 0x20, 0xf4, 0x1b,
+	0xe1, 0x88, 0x05, 0x83, 0x30, 0x72, 0x1b, 0x72, 0xe8, 0xef, 0xfa, 0x79, 0x23, 0x76, 0xc5, 0x47,
+	0xc4, 0x19, 0x1d, 0xb0, 0xc6, 0xe5, 0x83, 0xc6, 0x30, 0x6c, 0xb8, 0xbe, 0xf7, 0x64, 0x56, 0x7c,
+	0xcc, 0x3c, 0xf8, 0x27, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x65, 0x9d, 0xfb, 0x17, 0x09, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -672,7 +729,7 @@
 	// This configuration is persisted across restart of the device or the device manager
 	UpdateMetricsConfiguration(ctx context.Context, in *MetricsConfigurationRequest, opts ...grpc.CallOption) (*MetricsConfigurationResponse, error)
 	// Get the instantenous value of a metric
-	GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*Metric, error)
+	GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*GetMetricResponse, error)
 }
 
 type nativeMetricsManagementServiceClient struct {
@@ -701,8 +758,8 @@
 	return out, nil
 }
 
-func (c *nativeMetricsManagementServiceClient) GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*Metric, error) {
-	out := new(Metric)
+func (c *nativeMetricsManagementServiceClient) GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*GetMetricResponse, error) {
+	out := new(GetMetricResponse)
 	err := c.cc.Invoke(ctx, "/dmi.NativeMetricsManagementService/GetMetric", in, out, opts...)
 	if err != nil {
 		return nil, err
@@ -723,7 +780,7 @@
 	// This configuration is persisted across restart of the device or the device manager
 	UpdateMetricsConfiguration(context.Context, *MetricsConfigurationRequest) (*MetricsConfigurationResponse, error)
 	// Get the instantenous value of a metric
-	GetMetric(context.Context, *GetMetricRequest) (*Metric, error)
+	GetMetric(context.Context, *GetMetricRequest) (*GetMetricResponse, error)
 }
 
 func RegisterNativeMetricsManagementServiceServer(s *grpc.Server, srv NativeMetricsManagementServiceServer) {
