Browse Source

feat(instrumentation): documented instrumentation options, closes #4696

Torkel Ödegaard 9 years ago
parent
commit
1059a35bbc
4 changed files with 46 additions and 6 deletions
  1. 5 5
      conf/defaults.ini
  2. 12 0
      conf/sample.ini
  3. 25 0
      docs/sources/installation/configuration.md
  4. 4 1
      pkg/metrics/publish.go

+ 5 - 5
conf/defaults.ini

@@ -341,11 +341,11 @@ global_session = -1
 
 
 #################################### Internal Grafana Metrics ##########################
 #################################### Internal Grafana Metrics ##########################
 [metrics]
 [metrics]
-enabled           = false
-interval_seconds  = 10
+enabled           = true
+interval_seconds  = 60
 
 
-[metrics.graphite]
-address = localhost:2003
-prefix = prod.grafana.%(instance_name)s.
+; [metrics.graphite]
+; address = localhost:2003
+; prefix = prod.grafana.%(instance_name)s.
 
 
 
 

+ 12 - 0
conf/sample.ini

@@ -272,5 +272,17 @@ check_for_updates = true
 ;enabled = false
 ;enabled = false
 ;path = /var/lib/grafana/dashboards
 ;path = /var/lib/grafana/dashboards
 
 
+#################################### Internal Grafana Metrics ##########################
+[metrics]
+# Disable / Enable internal metrics
+;enabled           = true
+
+# Publish interval
+;interval_seconds  = 10
+
+# Send internal metrics to Graphite
+; [metrics.graphite]
+; address = localhost:2003
+; prefix = prod.grafana.%(instance_name)s.
 
 
 
 

+ 25 - 0
docs/sources/installation/configuration.md

@@ -44,6 +44,12 @@ Then you can override them using:
 
 
 <hr />
 <hr />
 
 
+## instance_name
+Set the name of the grafana-server instance. Used in logging and internal metrics and in
+clustering info. Defaults to: `${HOSTNAME}, which will be replaced with
+environment variable `HOSTNAME`, if that is empty or does not exist Grafana will try to use
+system calls to get the machine name.
+
 ## [paths]
 ## [paths]
 
 
 ### data
 ### data
@@ -439,3 +445,22 @@ Grafana backend index those json dashboards which will make them appear in regul
 
 
 ### path
 ### path
 The full path to a directory containing your json dashboards.
 The full path to a directory containing your json dashboards.
+
+## [metrics]
+
+### enabled
+Enable metrics reporting. defaults true. Available via HTTP API `/api/metrics`.
+
+### interval_seconds
+
+Flush/Write interval when sending metrics to external TSDB. Defaults to 60s.
+
+## [metrics.graphite]
+Include this section if you want to send internal Grafana metrics to Graphite.
+
+### address
+Format `<Hostname or ip>`:port
+
+### prefix
+Graphite metric prefix. Defaults to `prod.grafana.%(instance_name)s.`
+

+ 4 - 1
pkg/metrics/publish.go

@@ -39,8 +39,11 @@ func instrumentationLoop(settings *MetricSettings) chan struct{} {
 }
 }
 
 
 func sendMetrics(settings *MetricSettings) {
 func sendMetrics(settings *MetricSettings) {
-	metrics := MetricStats.GetSnapshots()
+	if len(settings.Publishers) == 0 {
+		return
+	}
 
 
+	metrics := MetricStats.GetSnapshots()
 	for _, publisher := range settings.Publishers {
 	for _, publisher := range settings.Publishers {
 		publisher.Publish(metrics)
 		publisher.Publish(metrics)
 	}
 	}