diff --git a/pkg/stats/stats.go b/pkg/stats/stats.go
new file mode 100644
index 0000000..c507e55
--- /dev/null
+++ b/pkg/stats/stats.go
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2018-present Open Networking Foundation
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+
+ * http://www.apache.org/licenses/LICENSE-2.0
+
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package stats
+
+type DeviceCounter string
+type NonDeviceCounter string
+
+type NonDeviceDuration string
+type DeviceDuration string
+
+// The unit for all the time based metrics are in milli seconds
+
+const (
+	// OLT Device stats
+	//-----------------
+	// Number of ONU Discovery messages received by the OLT adapter
+	NumDiscoveriesReceived DeviceCounter = "discoveries_received_total"
+	// Number of ONUs successfully activated by the OLT adapter
+	NumOnusActivated DeviceCounter = "activated_onus_total"
+
+	// ONT Device stats
+	//-----------------
+	// Number of times transmission retries for OMCI messages were done for a specific ONU
+	OmciCCTxRetries DeviceCounter = "omci_cc_tx_retries_total"
+	// Number of times transmission timeouts for OMCI messages happened for a specific ONU
+	OmciCCTxTimeouts DeviceCounter = "omci_cc_tx_timeous_total"
+
+	// Other not device specific stats
+	//--------------------------------
+	// Number of times writing to the message bus failed, could be collected by adapters as well as vCore
+	NumErrorsWritingToBus NonDeviceCounter = "bus_write_errors_total"
+	// Number of times rpc calls to the vCore resulted in errors at the adapters
+	NumCoreRpcErrors NonDeviceCounter = "core_rpc_errors_total"
+	// Number of times rpc calls to the adapters resulted in errors at the vCore
+	NumAdapterRpcErrors NonDeviceCounter = "adapter_rpc_errors_total"
+
+	// OLT Device durations
+	//---------------------
+	// Time taken at the OLT adapter to process successfully an ONU Discovery message received
+	OnuDiscoveryProcTime DeviceDuration = "onu_discovery_proc_time"
+	// Time taken at the OLT adapter to successfully activate an ONU
+	OnuDiscToActivateTime DeviceDuration = "onu_discovery_to_activate_time"
+	// Time taken at the OLT adapter from the time the ONU Discovery was received to the first flow being pushed for the ONU
+	OnuDiscToFlowsPushedTime DeviceDuration = "onu_disc_to_flows_pushed_time"
+
+	// ONU Device durations
+	//---------------------
+
+	// Other not device specific durations
+	//------------------------------------
+	// Time taken to write an entry to the database, could be collected by all the three users of the database
+	DBWriteTime NonDeviceDuration = "db_write_time"
+	// Time taken to read an entry from the database, could be collected by all the three users of the database
+	DBReadTime NonDeviceDuration = "db_read_time"
+)
+
+func (s DeviceCounter) String() string {
+	switch s {
+	case NumDiscoveriesReceived:
+		return "discoveries_received_total"
+	case NumOnusActivated:
+		return "activated_onus_total"
+	case OmciCCTxRetries:
+		return "omci_cc_tx_retries_total"
+	case OmciCCTxTimeouts:
+		return "omci_cc_tx_timeous_total"
+	}
+	return "unknown"
+}
+
+func (s NonDeviceCounter) String() string {
+	switch s {
+	case NumErrorsWritingToBus:
+		return "bus_write_errors_total"
+	case NumCoreRpcErrors:
+		return "core_rpc_errors_total"
+	case NumAdapterRpcErrors:
+		return "adapter_rpc_errors_total"
+	}
+	return "unknown"
+}
+
+func (s NonDeviceDuration) String() string {
+	switch s {
+	case DBWriteTime:
+		return "db_write_time"
+	case DBReadTime:
+		return "db_read_time"
+	}
+	return "unknown"
+}
+
+func (s DeviceDuration) String() string {
+	switch s {
+	case OnuDiscoveryProcTime:
+		return "onu_discovery_proc_time"
+	case OnuDiscToActivateTime:
+		return "onu_discovery_to_activate_time"
+	case OnuDiscToFlowsPushedTime:
+		return "onu_disc_to_flows_pushed_time"
+	}
+	return "unknown"
+}
