"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[1325],{15680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>y});var r=n(96540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function o(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var d=r.createContext({}),u=function(e){var t=r.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=u(e.components);return r.createElement(d.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,d=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),m=u(n),g=a,y=m["".concat(d,".").concat(g)]||m[g]||p[g]||i;return n?r.createElement(y,l(l({ref:t},s),{},{components:n})):r.createElement(y,l({ref:t},s))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=g;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o[m]="string"==typeof e?e:a,l[1]=o;for(var u=2;u<i;u++)l[u]=n[u];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}g.displayName="MDXCreateElement"},84384:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>d,default:()=>y,frontMatter:()=>o,metadata:()=>u,toc:()=>m});var r=n(58168),a=n(98587),i=(n(96540),n(15680)),l=["components"],o={id:"influxdb-emitter",title:"InfluxDB Emitter"},d=void 0,u={unversionedId:"development/extensions-contrib/influxdb-emitter",id:"development/extensions-contrib/influxdb-emitter",title:"InfluxDB Emitter",description:"\x3c!--",source:"@site/docs/latest/development/extensions-contrib/influxdb-emitter.md",sourceDirName:"development/extensions-contrib",slug:"/development/extensions-contrib/influxdb-emitter",permalink:"/docs/latest/development/extensions-contrib/influxdb-emitter",draft:!1,tags:[],version:"current",frontMatter:{id:"influxdb-emitter",title:"InfluxDB Emitter"}},s={},m=[{value:"Introduction",id:"introduction",level:2},{value:"Configuration",id:"configuration",level:2},{value:"InfluxDB Line Protocol",id:"influxdb-line-protocol",level:2}],p={toc:m},g="wrapper";function y(e){var t=e.components,n=(0,a.A)(e,l);return(0,i.yg)(g,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("p",null,"To use this Apache Druid extension, ",(0,i.yg)("a",{parentName:"p",href:"/docs/latest/configuration/extensions#loading-extensions"},"include")," ",(0,i.yg)("inlineCode",{parentName:"p"},"druid-influxdb-emitter")," in the extensions load list."),(0,i.yg)("h2",{id:"introduction"},"Introduction"),(0,i.yg)("p",null,"This extension emits druid metrics to ",(0,i.yg)("a",{parentName:"p",href:"https://www.influxdata.com/time-series-platform/influxdb/"},"InfluxDB")," over HTTP. Currently this emitter only emits service metric events to InfluxDB (See ",(0,i.yg)("a",{parentName:"p",href:"/docs/latest/operations/metrics"},"Druid metrics")," for a list of metrics).\nWhen a metric event is fired it is added to a queue of events. After a configurable amount of time, the events on the queue are transformed to InfluxDB's line protocol\nand POSTed to the InfluxDB HTTP API. The entire queue is flushed at this point. The queue is also flushed as the emitter is shutdown."),(0,i.yg)("p",null,"Note that authentication and authorization must be ",(0,i.yg)("a",{parentName:"p",href:"https://docs.influxdata.com/influxdb/v1.7/administration/authentication_and_authorization/"},"enabled")," on the InfluxDB server."),(0,i.yg)("h2",{id:"configuration"},"Configuration"),(0,i.yg)("p",null,"All the configuration parameters for the influxdb emitter are under ",(0,i.yg)("inlineCode",{parentName:"p"},"druid.emitter.influxdb"),"."),(0,i.yg)("table",null,(0,i.yg)("thead",{parentName:"table"},(0,i.yg)("tr",{parentName:"thead"},(0,i.yg)("th",{parentName:"tr",align:null},"Property"),(0,i.yg)("th",{parentName:"tr",align:null},"Description"),(0,i.yg)("th",{parentName:"tr",align:null},"Required?"),(0,i.yg)("th",{parentName:"tr",align:null},"Default"))),(0,i.yg)("tbody",{parentName:"table"},(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.hostname")),(0,i.yg)("td",{parentName:"tr",align:null},"The hostname of the InfluxDB server."),(0,i.yg)("td",{parentName:"tr",align:null},"Yes"),(0,i.yg)("td",{parentName:"tr",align:null},"N/A")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.port")),(0,i.yg)("td",{parentName:"tr",align:null},"The port of the InfluxDB server."),(0,i.yg)("td",{parentName:"tr",align:null},"No"),(0,i.yg)("td",{parentName:"tr",align:null},"8086")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.protocol")),(0,i.yg)("td",{parentName:"tr",align:null},"The protocol used to send metrics to InfluxDB. One of http/https"),(0,i.yg)("td",{parentName:"tr",align:null},"No"),(0,i.yg)("td",{parentName:"tr",align:null},"http")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.trustStorePath")),(0,i.yg)("td",{parentName:"tr",align:null},"The path to the trustStore to be used for https"),(0,i.yg)("td",{parentName:"tr",align:null},"No"),(0,i.yg)("td",{parentName:"tr",align:null},"none")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.trustStoreType")),(0,i.yg)("td",{parentName:"tr",align:null},"The trustStore type to be used for https"),(0,i.yg)("td",{parentName:"tr",align:null},"No"),(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"jks"))),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.trustStorePassword")),(0,i.yg)("td",{parentName:"tr",align:null},"The trustStore password to be used for https"),(0,i.yg)("td",{parentName:"tr",align:null},"No"),(0,i.yg)("td",{parentName:"tr",align:null},"none")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.databaseName")),(0,i.yg)("td",{parentName:"tr",align:null},"The name of the database in InfluxDB."),(0,i.yg)("td",{parentName:"tr",align:null},"Yes"),(0,i.yg)("td",{parentName:"tr",align:null},"N/A")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.maxQueueSize")),(0,i.yg)("td",{parentName:"tr",align:null},"The size of the queue that holds events."),(0,i.yg)("td",{parentName:"tr",align:null},"No"),(0,i.yg)("td",{parentName:"tr",align:null},"Integer.MAX_VALUE(=2^31-1)")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.flushPeriod")),(0,i.yg)("td",{parentName:"tr",align:null},"How often (in milliseconds) the events queue is parsed into Line Protocol and POSTed to InfluxDB."),(0,i.yg)("td",{parentName:"tr",align:null},"No"),(0,i.yg)("td",{parentName:"tr",align:null},"60000")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.flushDelay")),(0,i.yg)("td",{parentName:"tr",align:null},"How long (in milliseconds) the scheduled method will wait until it first runs."),(0,i.yg)("td",{parentName:"tr",align:null},"No"),(0,i.yg)("td",{parentName:"tr",align:null},"60000")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.influxdbUserName")),(0,i.yg)("td",{parentName:"tr",align:null},"The username for authenticating with the InfluxDB database."),(0,i.yg)("td",{parentName:"tr",align:null},"Yes"),(0,i.yg)("td",{parentName:"tr",align:null},"N/A")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.influxdbPassword")),(0,i.yg)("td",{parentName:"tr",align:null},"The password of the database authorized user"),(0,i.yg)("td",{parentName:"tr",align:null},"Yes"),(0,i.yg)("td",{parentName:"tr",align:null},"N/A")),(0,i.yg)("tr",{parentName:"tbody"},(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},"druid.emitter.influxdb.dimensionWhitelist")),(0,i.yg)("td",{parentName:"tr",align:null},"A whitelist of metric dimensions to include as tags"),(0,i.yg)("td",{parentName:"tr",align:null},"No"),(0,i.yg)("td",{parentName:"tr",align:null},(0,i.yg)("inlineCode",{parentName:"td"},'["dataSource","type","numMetrics","numDimensions","threshold","dimension","taskType","taskStatus","tier"]'))))),(0,i.yg)("h2",{id:"influxdb-line-protocol"},"InfluxDB Line Protocol"),(0,i.yg)("p",null,"An example of how this emitter parses a Druid metric event into InfluxDB's ",(0,i.yg)("a",{parentName:"p",href:"https://docs.influxdata.com/influxdb/v1.7/write_protocols/line_protocol_reference/"},"line protocol")," is given here:"),(0,i.yg)("p",null,"The syntax of the line protocol is :"),(0,i.yg)("p",null,(0,i.yg)("inlineCode",{parentName:"p"},"<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]")),(0,i.yg)("p",null,"where timestamp is in nanoseconds since epoch."),(0,i.yg)("p",null,"A typical service metric event as recorded by Druid's logging emitter is: ",(0,i.yg)("inlineCode",{parentName:"p"},'Event [{"feed":"metrics","timestamp":"2017-10-31T09:09:06.857Z","service":"druid/historical","host":"historical001:8083","version":"0.11.0-SNAPSHOT","metric":"query/cache/total/hits","value":34787256}]'),"."),(0,i.yg)("p",null,"This event is parsed into line protocol according to these rules:"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"The measurement becomes druid_query since query is the first part of the metric."),(0,i.yg)("li",{parentName:"ul"},"The tags are service=druid/historical, hostname=historical001, metric=druid",(0,i.yg)("em",{parentName:"li"},"cache_total. (The metric tag is the middle part of the druid metric separated with ")," and preceded by druid_. Another example would be if an event has metric=query/time then there is no middle part and hence no metric tag)"),(0,i.yg)("li",{parentName:"ul"},"The field is druid_hits since this is the last part of the metric.")),(0,i.yg)("p",null,"This gives the following String which can be POSTed to InfluxDB: ",(0,i.yg)("inlineCode",{parentName:"p"},'"druid_query,service=druid/historical,hostname=historical001,metric=druid_cache_total druid_hits=34787256 1509440946857000000"')),(0,i.yg)("p",null,"The InfluxDB emitter has a white list of dimensions\nwhich will be added as a tag to the line protocol string if the metric has a dimension from the white list.\nThe value of the dimension is sanitized such that every occurrence of a dot or whitespace is replaced with a ",(0,i.yg)("inlineCode",{parentName:"p"},"_")," ."))}y.isMDXComponent=!0}}]);