func removeInternalMetrics(config *domain.MetricConfig) {
	// create an empty list of metrics
	var metrics []domain.Metric
	for _, metric := range config.Metrics {
		// and copy metrics, except built in ones
		if metric.BuiltIn {
			continue
		}
		metrics = append(metrics, metric)
	}
	config.Metrics = metrics
}
// addInternalMetrics adds internal metrics to the config. It assumes that
// the current config does not container any internal metrics
func addInternalMetrics(config *domain.MetricConfig) {

	for _, metricName := range internalCounterStats {
		config.Metrics = append(config.Metrics,
			domain.Metric{
				ID:      metricName,
				Name:    metricName,
				Counter: true,
				BuiltIn: true,
			})

	}
	for _, metricName := range internalGuageStats {
		config.Metrics = append(config.Metrics,
			domain.Metric{
				ID:      metricName,
				Name:    metricName,
				Counter: false,
				BuiltIn: true,
			})

	}
}