"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[9164],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>h});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function s(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),m=p(r),c=a,h=m["".concat(l,".").concat(c)]||m[c]||u[c]||o;return r?n.createElement(h,i(i({ref:t},d),{},{components:r})):n.createElement(h,i({ref:t},d))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[m]="string"==typeof e?e:a,i[1]=s;for(var p=2;p<o;p++)i[p]=r[p];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}c.displayName="MDXCreateElement"},682:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>p,toc:()=>m});var n=r(7462),a=r(3366),o=(r(7294),r(3905)),i=["components"],s={id:"prometheus",title:"Prometheus Emitter"},l=void 0,p={unversionedId:"development/extensions-contrib/prometheus",id:"development/extensions-contrib/prometheus",title:"Prometheus Emitter",description:"\x3c!--",source:"@site/docs/26.0.0/development/extensions-contrib/prometheus.md",sourceDirName:"development/extensions-contrib",slug:"/development/extensions-contrib/prometheus",permalink:"/docs/26.0.0/development/extensions-contrib/prometheus",draft:!1,tags:[],version:"current",frontMatter:{id:"prometheus",title:"Prometheus Emitter"}},d={},m=[{value:"Introduction",id:"introduction",level:2},{value:"Configuration",id:"configuration",level:2},{value:"Ports for colocated Druid processes",id:"ports-for-colocated-druid-processes",level:3},{value:"Override properties for Peon Tasks",id:"override-properties-for-peon-tasks",level:3},{value:"Metric names",id:"metric-names",level:3},{value:"Metric mapping",id:"metric-mapping",level:3}],u={toc:m},c="wrapper";function h(e){var t=e.components,r=(0,a.Z)(e,i);return(0,o.kt)(c,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"To use this Apache Druid extension, ",(0,o.kt)("a",{parentName:"p",href:"/docs/26.0.0/development/extensions#loading-extensions"},"include")," ",(0,o.kt)("inlineCode",{parentName:"p"},"prometheus-emitter")," in the extensions load list."),(0,o.kt)("h2",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"This extension exposes ",(0,o.kt)("a",{parentName:"p",href:"https://druid.apache.org/docs/latest/operations/metrics.html"},"Druid metrics")," for collection by a Prometheus server (",(0,o.kt)("a",{parentName:"p",href:"https://prometheus.io/"},"https://prometheus.io/"),")."),(0,o.kt)("p",null,"Emitter is enabled by setting ",(0,o.kt)("inlineCode",{parentName:"p"},"druid.emitter=prometheus")," ",(0,o.kt)("a",{parentName:"p",href:"https://druid.apache.org/docs/latest/configuration/index.html#enabling-metrics"},"configs")," or include ",(0,o.kt)("inlineCode",{parentName:"p"},"prometheus")," in the composing emitter list. "),(0,o.kt)("h2",{id:"configuration"},"Configuration"),(0,o.kt)("p",null,"All the configuration parameters for the Prometheus emitter are under ",(0,o.kt)("inlineCode",{parentName:"p"},"druid.emitter.prometheus"),"."),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"property"),(0,o.kt)("th",{parentName:"tr",align:null},"description"),(0,o.kt)("th",{parentName:"tr",align:null},"required?"),(0,o.kt)("th",{parentName:"tr",align:null},"default"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"druid.emitter.prometheus.strategy")),(0,o.kt)("td",{parentName:"tr",align:null},"The strategy to expose prometheus metrics. ",(0,o.kt)("br",null),"Should be one of ",(0,o.kt)("inlineCode",{parentName:"td"},"exporter")," and ",(0,o.kt)("inlineCode",{parentName:"td"},"pushgateway"),". Default strategy ",(0,o.kt)("inlineCode",{parentName:"td"},"exporter")," would expose metrics for scraping purpose. Peon tasks (short-lived jobs) should use ",(0,o.kt)("inlineCode",{parentName:"td"},"pushgateway")," strategy."),(0,o.kt)("td",{parentName:"tr",align:null},"yes"),(0,o.kt)("td",{parentName:"tr",align:null},"exporter")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"druid.emitter.prometheus.port")),(0,o.kt)("td",{parentName:"tr",align:null},"The port on which to expose the prometheus HTTPServer. Required if using ",(0,o.kt)("inlineCode",{parentName:"td"},"exporter")," strategy."),(0,o.kt)("td",{parentName:"tr",align:null},"no"),(0,o.kt)("td",{parentName:"tr",align:null},"none")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"druid.emitter.prometheus.namespace")),(0,o.kt)("td",{parentName:"tr",align:null},"Optional metric namespace. Must match the regex ",(0,o.kt)("inlineCode",{parentName:"td"},"[a-zA-Z_:][a-zA-Z0-9_:]*")),(0,o.kt)("td",{parentName:"tr",align:null},"no"),(0,o.kt)("td",{parentName:"tr",align:null},"druid")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"druid.emitter.prometheus.dimensionMapPath")),(0,o.kt)("td",{parentName:"tr",align:null},"JSON file defining the Prometheus metric type, desired dimensions, help text, and conversionFactor for every Druid metric."),(0,o.kt)("td",{parentName:"tr",align:null},"no"),(0,o.kt)("td",{parentName:"tr",align:null},"Default mapping provided. See below.")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"druid.emitter.prometheus.addHostAsLabel")),(0,o.kt)("td",{parentName:"tr",align:null},"Flag to include the hostname as a prometheus label."),(0,o.kt)("td",{parentName:"tr",align:null},"no"),(0,o.kt)("td",{parentName:"tr",align:null},"false")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"druid.emitter.prometheus.addServiceAsLabel")),(0,o.kt)("td",{parentName:"tr",align:null},"Flag to include the druid service name (e.g. ",(0,o.kt)("inlineCode",{parentName:"td"},"druid/broker"),", ",(0,o.kt)("inlineCode",{parentName:"td"},"druid/coordinator"),", etc.) as a prometheus label."),(0,o.kt)("td",{parentName:"tr",align:null},"no"),(0,o.kt)("td",{parentName:"tr",align:null},"false")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"druid.emitter.prometheus.pushGatewayAddress")),(0,o.kt)("td",{parentName:"tr",align:null},"Pushgateway address. Required if using ",(0,o.kt)("inlineCode",{parentName:"td"},"pushgateway")," strategy."),(0,o.kt)("td",{parentName:"tr",align:null},"no"),(0,o.kt)("td",{parentName:"tr",align:null},"none")),(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},(0,o.kt)("inlineCode",{parentName:"td"},"druid.emitter.prometheus.flushPeriod")),(0,o.kt)("td",{parentName:"tr",align:null},"Emit metrics to Pushgateway every ",(0,o.kt)("inlineCode",{parentName:"td"},"flushPeriod")," seconds. Required if ",(0,o.kt)("inlineCode",{parentName:"td"},"pushgateway")," strategy is used."),(0,o.kt)("td",{parentName:"tr",align:null},"no"),(0,o.kt)("td",{parentName:"tr",align:null},"15")))),(0,o.kt)("h3",{id:"ports-for-colocated-druid-processes"},"Ports for colocated Druid processes"),(0,o.kt)("p",null,"In certain instances, Druid processes may be colocated on the same host. For example, the Broker and Router may share the same server. Other colocated processes include the Historical and MiddleManager or the Coordinator and Overlord. When you have colocated processes, specify ",(0,o.kt)("inlineCode",{parentName:"p"},"druid.emitter.prometheus.port")," separately for each process on each host. For example, even if the Broker and Router share the same host, the Broker runtime properties and the Router runtime properties each need to list ",(0,o.kt)("inlineCode",{parentName:"p"},"druid.emitter.prometheus.port"),", and the port value for both must be different."),(0,o.kt)("h3",{id:"override-properties-for-peon-tasks"},"Override properties for Peon Tasks"),(0,o.kt)("p",null,"Peon tasks are created dynamically by middle managers and have dynamic host and port addresses. Since the ",(0,o.kt)("inlineCode",{parentName:"p"},"exporter")," strategy allows Prometheus to read only from a fixed address, it cannot be used for peon tasks.\nSo, these tasks need to be configured to use ",(0,o.kt)("inlineCode",{parentName:"p"},"pushgateway")," strategy to push metrics from Druid to prometheus gateway."),(0,o.kt)("p",null,"If this emitter is configured to use ",(0,o.kt)("inlineCode",{parentName:"p"},"exporter")," strategy globally, some of the above configurations need to be overridden in the middle manager so that spawned peon tasks can still use the ",(0,o.kt)("inlineCode",{parentName:"p"},"pushgateway")," strategy."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"#\n# Override global prometheus emitter configuration for peon tasks to use `pushgateway` strategy.\n# Other configurations can also be overridden by adding `druid.indexer.fork.property.` prefix to above configuration properties.\n# \ndruid.indexer.fork.property.druid.emitter.prometheus.strategy=pushgateway\ndruid.indexer.fork.property.druid.emitter.prometheus.pushGatewayAddress=http://<push-gateway-address>\n")),(0,o.kt)("h3",{id:"metric-names"},"Metric names"),(0,o.kt)("p",null,"All metric names and labels are reformatted to match Prometheus standards."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"For names: all characters which are not alphanumeric, underscores, or colons (matching ",(0,o.kt)("inlineCode",{parentName:"li"},"[^a-zA-Z_:][^a-zA-Z0-9_:]*"),") are replaced with ",(0,o.kt)("inlineCode",{parentName:"li"},"_")),(0,o.kt)("li",{parentName:"ul"},"For labels: all characters which are not alphanumeric or underscores (matching ",(0,o.kt)("inlineCode",{parentName:"li"},"[^a-zA-Z0-9_][^a-zA-Z0-9_]*"),") are replaced with ",(0,o.kt)("inlineCode",{parentName:"li"},"_"))),(0,o.kt)("h3",{id:"metric-mapping"},"Metric mapping"),(0,o.kt)("p",null,"Each metric to be collected by Prometheus must specify a type, one of ",(0,o.kt)("inlineCode",{parentName:"p"},"[timer, counter, guage]"),". Prometheus Emitter expects this mapping to\nbe provided as a JSON file.  Additionally, this mapping specifies which dimensions should be included for each metric.  Prometheus expects\nhistogram timers to use Seconds as the base unit.  Timers which do not use seconds as a base unit can use the ",(0,o.kt)("inlineCode",{parentName:"p"},"conversionFactor")," to set\nthe base time unit. If the user does not specify their own JSON file, a default mapping is used.  All\nmetrics are expected to be mapped. Metrics which are not mapped will not be tracked."),(0,o.kt)("p",null,"Prometheus metric path is organized using the following schema:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'<druid metric name> : { \n  "dimensions" : <dimension list>, \n  "type" : <timer|counter|gauge>, \n  "conversionFactor": <conversionFactor>, \n  "help" : <help text>\n}\n')),(0,o.kt)("p",null,"For example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'"query/time" : { \n  "dimensions" : ["dataSource", "type"],\n  "type" : "timer",\n  "conversionFactor": 1000.0,\n  "help": "Seconds taken to complete a query."\n}\n')),(0,o.kt)("p",null,"For metrics which are emitted from multiple services with different dimensions, the metric name is prefixed with\nthe service name. For example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'"coordinator-segment/count" : { "dimensions" : ["dataSource"], "type" : "gauge" },\n"historical-segment/count" : { "dimensions" : ["dataSource", "tier", "priority"], "type" : "gauge" }\n')),(0,o.kt)("p",null,"For most use cases, the default mapping is sufficient."))}h.isMDXComponent=!0}}]);