diff --git a/dapps/faucet/packages/payload/payload.go b/dapps/faucet/packages/payload/payload.go
index 441e892fb0154061b6f0e363157c3dc67d214f3c..264aa31134635cf2ba81670eadae8289efe16618 100644
--- a/dapps/faucet/packages/payload/payload.go
+++ b/dapps/faucet/packages/payload/payload.go
@@ -9,6 +9,11 @@ import (
 	"github.com/iotaledger/goshimmer/packages/binary/messagelayer/payload"
 )
 
+const (
+	// ObjectName defines the name of the facuet object.
+	ObjectName = "faucet"
+)
+
 // Payload represents a request which contains an address for the faucet to send funds to.
 type Payload struct {
 	payloadType payload.Type
@@ -27,7 +32,7 @@ func New(addr address.Address) *Payload {
 }
 
 func init() {
-	payload.RegisterType(Type, GenericPayloadUnmarshalerFactory(Type))
+	payload.RegisterType(Type, ObjectName, GenericPayloadUnmarshalerFactory(Type))
 }
 
 // FromBytes parses the marshaled version of a Payload into an object.
diff --git a/dapps/networkdelay/object.go b/dapps/networkdelay/object.go
index 5b41369019c68354bdaaa1fd9a3f5db26c8a3b6a..40e45947dddddc662c292e6ec006e59920731f86 100644
--- a/dapps/networkdelay/object.go
+++ b/dapps/networkdelay/object.go
@@ -9,6 +9,11 @@ import (
 	"github.com/mr-tron/base58"
 )
 
+const (
+	// ObjectName defines the name of the networkdelay object.
+	ObjectName = "networkdelay"
+)
+
 // ID represents a 32 byte ID of a network delay object.
 type ID [32]byte
 
@@ -145,7 +150,7 @@ func (o *Object) Unmarshal(data []byte) (err error) {
 }
 
 func init() {
-	payload.RegisterType(Type, func(data []byte) (payload payload.Payload, err error) {
+	payload.RegisterType(Type, ObjectName, func(data []byte) (payload payload.Payload, err error) {
 		payload = &Object{}
 		err = payload.Unmarshal(data)
 
diff --git a/dapps/valuetransfers/packages/payload/payload.go b/dapps/valuetransfers/packages/payload/payload.go
index e121327f064e6abb6d5ddd51996801d2edbc16bf..7ad1ffe3ef63f6b258c0f9b8641ba49bb26f6b6b 100644
--- a/dapps/valuetransfers/packages/payload/payload.go
+++ b/dapps/valuetransfers/packages/payload/payload.go
@@ -12,6 +12,11 @@ import (
 	"github.com/iotaledger/goshimmer/packages/binary/messagelayer/payload"
 )
 
+const (
+	// ObjectName defines the name of the value object.
+	ObjectName = "value"
+)
+
 // Payload represents the entity that forms the Tangle by referencing other Payloads using their trunk and branch.
 // A Payload contains a transaction and defines, where in the Tangle a transaction is attached.
 type Payload struct {
@@ -253,7 +258,7 @@ func (payload *Payload) Unmarshal(data []byte) (err error) {
 }
 
 func init() {
-	payload.RegisterType(Type, func(data []byte) (payload payload.Payload, err error) {
+	payload.RegisterType(Type, ObjectName, func(data []byte) (payload payload.Payload, err error) {
 		payload, _, err = FromBytes(data)
 
 		return
diff --git a/packages/binary/drng/payload/payload.go b/packages/binary/drng/payload/payload.go
index bbbdaafdf5515373418acbfe71cf51927b3dc0fb..fe9768f70983397509e321fc211a9fd6af708891 100644
--- a/packages/binary/drng/payload/payload.go
+++ b/packages/binary/drng/payload/payload.go
@@ -9,6 +9,11 @@ import (
 	"github.com/iotaledger/hive.go/stringify"
 )
 
+const (
+	// ObjectName defines the name of the dRNG object.
+	ObjectName = "dRNG"
+)
+
 // Payload defines a DRNG payload.
 type Payload struct {
 	header.Header
@@ -140,7 +145,7 @@ func (payload *Payload) Unmarshal(data []byte) (err error) {
 }
 
 func init() {
-	payload.RegisterType(Type, func(data []byte) (payload payload.Payload, err error) {
+	payload.RegisterType(Type, ObjectName, func(data []byte) (payload payload.Payload, err error) {
 		payload = &Payload{}
 		err = payload.Unmarshal(data)
 
diff --git a/packages/binary/messagelayer/payload/payload.go b/packages/binary/messagelayer/payload/payload.go
index f0f013e6c45c35ca70b0b082da9b774c1e62946d..f70f87578a42015d56bf590921ab93969ab2b5de 100644
--- a/packages/binary/messagelayer/payload/payload.go
+++ b/packages/binary/messagelayer/payload/payload.go
@@ -4,11 +4,16 @@ import (
 	"github.com/iotaledger/hive.go/marshalutil"
 )
 
+const (
+	// ObjectName defines the name of the data object.
+	ObjectName = "data"
+)
+
 func init() {
 	// register the generic unmarshaler
 	SetGenericUnmarshalerFactory(GenericPayloadUnmarshalerFactory)
 	// register the generic data payload type
-	RegisterType(DataType, GenericPayloadUnmarshalerFactory(DataType))
+	RegisterType(DataType, ObjectName, GenericPayloadUnmarshalerFactory(DataType))
 }
 
 // Payload represents some kind of payload of data which only gains meaning by having
diff --git a/packages/binary/messagelayer/payload/type_register.go b/packages/binary/messagelayer/payload/type_register.go
index 6549879a0b0c4facc06bef90b7b2c088bbf0883f..eb22e51eca3eeb6d2f5e3342be35de3edb33d9bf 100644
--- a/packages/binary/messagelayer/payload/type_register.go
+++ b/packages/binary/messagelayer/payload/type_register.go
@@ -7,16 +7,25 @@ import (
 // Unmarshaler takes some data and unmarshals it into a payload.
 type Unmarshaler func(data []byte) (Payload, error)
 
+// Definition defines the properties of a payload type.
+type Definition struct {
+	Name string
+	Unmarshaler
+}
+
 var (
-	typeRegister              = make(map[Type]Unmarshaler)
+	typeRegister              = make(map[Type]Definition)
 	typeRegisterMutex         sync.RWMutex
 	genericUnmarshalerFactory func(payloadType Type) Unmarshaler
 )
 
 // RegisterType registers a payload type with the given unmarshaler.
-func RegisterType(payloadType Type, unmarshaler Unmarshaler) {
+func RegisterType(payloadType Type, payloadName string, unmarshaler Unmarshaler) {
 	typeRegisterMutex.Lock()
-	typeRegister[payloadType] = unmarshaler
+	typeRegister[payloadType] = Definition{
+		Name:        payloadName,
+		Unmarshaler: unmarshaler,
+	}
 	typeRegisterMutex.Unlock()
 }
 
@@ -25,8 +34,8 @@ func RegisterType(payloadType Type, unmarshaler Unmarshaler) {
 func GetUnmarshaler(payloadType Type) Unmarshaler {
 	typeRegisterMutex.RLock()
 	defer typeRegisterMutex.RUnlock()
-	if unmarshaler, exists := typeRegister[payloadType]; exists {
-		return unmarshaler
+	if definition, exists := typeRegister[payloadType]; exists {
+		return definition.Unmarshaler
 	}
 	return genericUnmarshalerFactory(payloadType)
 }
@@ -35,3 +44,13 @@ func GetUnmarshaler(payloadType Type) Unmarshaler {
 func SetGenericUnmarshalerFactory(unmarshalerFactory func(payloadType Type) Unmarshaler) {
 	genericUnmarshalerFactory = unmarshalerFactory
 }
+
+// Name returns the name of a given payload type.
+func Name(payloadType Type) string {
+	typeRegisterMutex.RLock()
+	defer typeRegisterMutex.RUnlock()
+	if definition, exists := typeRegister[payloadType]; exists {
+		return definition.Name
+	}
+	return ObjectName
+}
diff --git a/plugins/prometheus/tangle.go b/plugins/prometheus/tangle.go
index f0d155360960d2afbbab6f42ba27539f7cba0323..ccf33cc15d3504c096fe984885b40329f44856ec 100644
--- a/plugins/prometheus/tangle.go
+++ b/plugins/prometheus/tangle.go
@@ -57,22 +57,9 @@ func collectTangleMetrics() {
 	messageTips.Set(float64(metrics.MessageTips()))
 	msgCountPerPayload := metrics.MessageCountPerPayload()
 	for payloadType, count := range msgCountPerPayload {
-		messagePerTypeCount.WithLabelValues(convertPayloadTypeToString(payloadType)).Set(float64(count))
+		messagePerTypeCount.WithLabelValues(payload.Name(payloadType)).Set(float64(count))
 	}
 	messageTotalCount.Set(float64(metrics.MessageTotalCount()))
 	transactionCounter.Set(float64(metrics.ValueTransactionCounter()))
 	valueTips.Set(float64(metrics.ValueTips()))
 }
-
-func convertPayloadTypeToString(p payload.Type) string {
-	switch p {
-	case 0:
-		return "data"
-	case 1:
-		return "value"
-	case 111:
-		return "drng"
-	default:
-		return "unknown"
-	}
-}
diff --git a/tools/docker-network/grafana/dashboards/local_dashboard.json b/tools/docker-network/grafana/dashboards/local_dashboard.json
index cc4ae2058911617251fec9b0a45e185b24a64fec..7e4d3cb1805ad1cdb26b8570d2ab5eacc0d24c33 100644
--- a/tools/docker-network/grafana/dashboards/local_dashboard.json
+++ b/tools/docker-network/grafana/dashboards/local_dashboard.json
@@ -486,14 +486,20 @@
         {
           "expr": "irate(tangle_messages_per_type_count{message_type=\"drng\"}[5m])",
           "interval": "",
-          "legendFormat": "DRNG Message Per Second",
+          "legendFormat": "dRNG Messages Per Second",
           "refId": "C"
         },
         {
-          "expr": "irate(tangle_messages_per_type_count{message_type=\"unknown\"}[5m])",
+          "expr": "irate(tangle_messages_per_type_count{message_type=\"faucet\"}[5m])",
           "interval": "",
-          "legendFormat": "Unknown Type Message Per Second",
+          "legendFormat": "Faucet Messages Per Second",
           "refId": "D"
+        },
+        {
+          "expr": "irate(tangle_messages_per_type_count{message_type=\"netowrkdelay\"}[5m])",
+          "interval": "",
+          "legendFormat": "Network Delay Messages Per Second",
+          "refId": "E"
         }
       ],
       "thresholds": [],
diff --git a/tools/monitoring/grafana/dashboards/local_dashboard.json b/tools/monitoring/grafana/dashboards/local_dashboard.json
index cc4ae2058911617251fec9b0a45e185b24a64fec..7e4d3cb1805ad1cdb26b8570d2ab5eacc0d24c33 100755
--- a/tools/monitoring/grafana/dashboards/local_dashboard.json
+++ b/tools/monitoring/grafana/dashboards/local_dashboard.json
@@ -486,14 +486,20 @@
         {
           "expr": "irate(tangle_messages_per_type_count{message_type=\"drng\"}[5m])",
           "interval": "",
-          "legendFormat": "DRNG Message Per Second",
+          "legendFormat": "dRNG Messages Per Second",
           "refId": "C"
         },
         {
-          "expr": "irate(tangle_messages_per_type_count{message_type=\"unknown\"}[5m])",
+          "expr": "irate(tangle_messages_per_type_count{message_type=\"faucet\"}[5m])",
           "interval": "",
-          "legendFormat": "Unknown Type Message Per Second",
+          "legendFormat": "Faucet Messages Per Second",
           "refId": "D"
+        },
+        {
+          "expr": "irate(tangle_messages_per_type_count{message_type=\"netowrkdelay\"}[5m])",
+          "interval": "",
+          "legendFormat": "Network Delay Messages Per Second",
+          "refId": "E"
         }
       ],
       "thresholds": [],