"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8421],{15680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>d});var r=n(96540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(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 a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),g=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=g(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=g(n),m=i,d=c["".concat(l,".").concat(m)]||c[m]||p[m]||o;return n?r.createElement(d,a(a({ref:t},u),{},{components:n})):r.createElement(d,a({ref:t},u))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,a[1]=s;for(var g=2;g<o;g++)a[g]=n[g];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},60126:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>g,toc:()=>c});var r=n(58168),i=n(98587),o=(n(96540),n(15680)),a=["components"],s={id:"request-logging",title:"Request logging",sidebar_label:"Request logging"},l=void 0,g={unversionedId:"operations/request-logging",id:"operations/request-logging",title:"Request logging",description:"\x3c!--",source:"@site/docs/latest/operations/request-logging.md",sourceDirName:"operations",slug:"/operations/request-logging",permalink:"/docs/latest/operations/request-logging",draft:!1,tags:[],version:"current",frontMatter:{id:"request-logging",title:"Request logging",sidebar_label:"Request logging"},sidebar:"docs",previous:{title:"Automated metadata cleanup",permalink:"/docs/latest/operations/clean-metadata-store"},next:{title:"Metrics",permalink:"/docs/latest/operations/metrics"}},u={},c=[{value:"Configure request logging",id:"configure-request-logging",level:2},{value:"Configure metrics emission",id:"configure-metrics-emission",level:2},{value:"Example",id:"example",level:2},{value:"Learn more",id:"learn-more",level:2}],p={toc:c},m="wrapper";function d(e){var t=e.components,n=(0,i.A)(e,a);return(0,o.yg)(m,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"All Apache Druid services that can serve queries can also log the query requests they process.\nRequest logs contain information on query metrics, including execution time and memory usage.\nYou can use information in the request logs to monitor query performance, determine bottlenecks, and analyze and improve slow queries."),(0,o.yg)("p",null,"Request logging is disabled by default.\nThis topic describes how to configure Druid to generate request logs to track query metrics."),(0,o.yg)("h2",{id:"configure-request-logging"},"Configure request logging"),(0,o.yg)("p",null,"To enable request logging, determine the type of request logger to use, then set the configurations specific to the request logger type."),(0,o.yg)("p",null,"The following request logger types are available:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"noop"),": Disables request logging, the default behavior."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#file-request-logging"},(0,o.yg)("inlineCode",{parentName:"a"},"file")),": Stores logs to disk."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#emitter-request-logging"},(0,o.yg)("inlineCode",{parentName:"a"},"emitter")),": Logs request to an external location, which is configured through an emitter."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#slf4j-request-logging"},(0,o.yg)("inlineCode",{parentName:"a"},"slf4j")),": Logs queries via the SLF4J Java logging API."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#filtered-request-logging"},(0,o.yg)("inlineCode",{parentName:"a"},"filtered")),": Filters requests by query type or execution time before logging the filtered queries by the delegated request logger."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#composing-request-logging"},(0,o.yg)("inlineCode",{parentName:"a"},"composing")),": Logs all requests to multiple request loggers."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#switching-request-logging"},(0,o.yg)("inlineCode",{parentName:"a"},"switching")),": Logs native queries and SQL queries to separate request loggers.")),(0,o.yg)("p",null,"Define the type of request logger in ",(0,o.yg)("inlineCode",{parentName:"p"},"druid.request.logging.type"),".\nSee the ",(0,o.yg)("a",{parentName:"p",href:"/docs/latest/configuration/#request-logging"},"Request logging configuration")," for properties to set for each type of request logger.\nSpecify these properties in the ",(0,o.yg)("inlineCode",{parentName:"p"},"common.runtime.properties")," file.\nYou must restart Druid for the changes to take effect."),(0,o.yg)("p",null,"Druid stores the results in the Broker logs, unless the request logging type is ",(0,o.yg)("inlineCode",{parentName:"p"},"emitter"),".\nIf you use emitter request logging, you must also configure metrics emission."),(0,o.yg)("h2",{id:"configure-metrics-emission"},"Configure metrics emission"),(0,o.yg)("p",null,"Druid includes various emitters to send metrics and alerts.\nTo emit query metrics, set ",(0,o.yg)("inlineCode",{parentName:"p"},"druid.request.logging.feed=emitter"),", and define the emitter type in the ",(0,o.yg)("inlineCode",{parentName:"p"},"druid.emitter")," property."),(0,o.yg)("p",null,"You can use any of the following emitters in Druid:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"noop"),": Disables metric emission, the default behavior."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#logging-emitter-module"},(0,o.yg)("inlineCode",{parentName:"a"},"logging")),": Emits metrics to Log4j 2. See ",(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/logging"},"Logging")," to configure Log4j 2 for use with Druid."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#http-emitter-module"},(0,o.yg)("inlineCode",{parentName:"a"},"http")),": Sends HTTP ",(0,o.yg)("inlineCode",{parentName:"li"},"POST")," requests containing the metrics in JSON format to a user-defined endpoint."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#parametrized-http-emitter-module"},(0,o.yg)("inlineCode",{parentName:"a"},"parametrized")),": Operates like the ",(0,o.yg)("inlineCode",{parentName:"li"},"http")," emitter but fine-tunes the recipient URL based on the event feed."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#composing-emitter-module"},(0,o.yg)("inlineCode",{parentName:"a"},"composing")),": Emits metrics to multiple emitter types."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#graphite-emitter"},(0,o.yg)("inlineCode",{parentName:"a"},"graphite")),": Emits metrics to a ",(0,o.yg)("a",{parentName:"li",href:"https://graphiteapp.org/"},"Graphite")," Carbon service.")),(0,o.yg)("p",null,"Specify these properties in the ",(0,o.yg)("inlineCode",{parentName:"p"},"common.runtime.properties")," file.\nSee the ",(0,o.yg)("a",{parentName:"p",href:"/docs/latest/configuration/#metrics-emitters"},"Metrics emitters configuration")," for properties to set for each type of metrics emitter.\nYou must restart Druid for the changes to take effect."),(0,o.yg)("h2",{id:"example"},"Example"),(0,o.yg)("p",null,"The following configuration shows how to enable request logging and post query metrics to the endpoint ",(0,o.yg)("inlineCode",{parentName:"p"},"http://example.com:8080/path"),"."),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},"# Enable request logging and configure the emitter request logger\ndruid.request.logging.type=emitter\ndruid.request.logging.feed=myRequestLogFeed\n\n# Enable metrics emission and tell Druid where to emit messages\ndruid.emitter=http\ndruid.emitter.http.recipientBaseUrl=http://example.com:8080/path\n\n# Authenticate to the base URL, if needed\ndruid.emitter.http.basicAuthentication=username:password\n")),(0,o.yg)("p",null,"The following shows an example log emitter output:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre"},'[\n    {\n        "feed": "metrics",\n        "timestamp": "2022-01-06T20:32:06.628Z",\n        "service": "druid/broker",\n        "host": "localhost:8082",\n        "version": "2022.01.0-iap-SNAPSHOT",\n        "metric": "sqlQuery/bytes",\n        "value": 9351,\n        "dataSource": "[wikipedia]",\n        "id": "56e8317b-31cc-443d-b109-47f51b21d4c3",\n        "nativeQueryIds": "[2b9cbced-11fc-4d78-a58c-c42863dff3c8]",\n        "remoteAddress": "127.0.0.1",\n        "success": "true"\n    },\n    {\n        "feed": "myRequestLogFeed",\n        "timestamp": "2022-01-06T20:32:06.585Z",\n        "remoteAddr": "127.0.0.1",\n        "service": "druid/broker",\n        "sqlQueryContext":\n        {\n            "useApproximateCountDistinct": false,\n            "sqlQueryId": "56e8317b-31cc-443d-b109-47f51b21d4c3",\n            "useApproximateTopN": false,\n            "useCache": false,\n            "sqlOuterLimit": 101,\n            "populateCache": false,\n            "nativeQueryIds": "[2b9cbced-11fc-4d78-a58c-c42863dff3c8]"\n        },\n        "queryStats":\n        {\n            "sqlQuery/time": 43,\n            "sqlQuery/planningTimeMs": 5,\n            "sqlQuery/bytes": 9351,\n            "success": true,\n            "context":\n            {\n                "useApproximateCountDistinct": false,\n                "sqlQueryId": "56e8317b-31cc-443d-b109-47f51b21d4c3",\n                "useApproximateTopN": false,\n                "useCache": false,\n                "sqlOuterLimit": 101,\n                "populateCache": false,\n                "nativeQueryIds": "[2b9cbced-11fc-4d78-a58c-c42863dff3c8]"\n            },\n            "identity": "allowAll"\n        },\n        "query": null,\n        "host": "localhost:8082",\n        "sql": "SELECT * FROM wikipedia WHERE cityName = \'Buenos Aires\'"\n    },\n    {\n        "feed": "myRequestLogFeed",\n        "timestamp": "2022-01-06T20:32:07.652Z",\n        "remoteAddr": "",\n        "service": "druid/broker",\n        "sqlQueryContext":\n        {},\n        "queryStats":\n        {\n            "query/time": 16,\n            "query/bytes": -1,\n            "success": true,\n            "identity": "allowAll"\n        },\n        "query":\n        {\n            "queryType": "scan",\n            "dataSource":\n            {\n                "type": "table",\n                "name": "wikipedia"\n            },\n            "intervals":\n            {\n                "type": "intervals",\n                "intervals":\n                [\n                    "-146136543-09-08T08:23:32.096Z/146140482-04-24T15:36:27.903Z"\n                ]\n            },\n            "virtualColumns":\n            [\n                {\n                    "type": "expression",\n                    "name": "v0",\n                    "expression": "\'Buenos Aires\'",\n                    "outputType": "STRING"\n                }\n            ],\n            "resultFormat": "compactedList",\n            "batchSize": 20480,\n            "limit": 101,\n            "filter":\n            {\n                "type": "selector",\n                "dimension": "cityName",\n                "value": "Buenos Aires",\n                "extractionFn": null\n            },\n            "columns":\n            [\n                "__time",\n                "added",\n                "channel",\n                "comment",\n                "commentLength",\n                "countryIsoCode",\n                "countryName",\n                "deleted",\n                "delta",\n                "deltaBucket",\n                "diffUrl",\n                "flags",\n                "isAnonymous",\n                "isMinor",\n                "isNew",\n                "isRobot",\n                "isUnpatrolled",\n                "metroCode",\n                "namespace",\n                "page",\n                "regionIsoCode",\n                "regionName",\n                "user",\n                "v0"\n            ],\n            "legacy": false,\n            "context":\n            {\n                "populateCache": false,\n                "queryId": "62e3d373-6e50-41b4-873b-1e56347c2950",\n                "sqlOuterLimit": 101,\n                "sqlQueryId": "cbb3d519-aee9-4566-8920-dbbeab6269f5",\n                "useApproximateCountDistinct": false,\n                "useApproximateTopN": false,\n                "useCache": false\n            },\n            "descending": false,\n            "granularity":\n            {\n                "type": "all"\n            }\n        },\n        "host": "localhost:8082",\n        "sql": null\n    },\n    ...\n]\n')),(0,o.yg)("h2",{id:"learn-more"},"Learn more"),(0,o.yg)("p",null,"See the following topics for more information."),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/operations/metrics#query-metrics"},"Query metrics")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#request-logging"},"Request logging configuration")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"/docs/latest/configuration/#metrics-emitters"},"Metrics emitters configuration"))))}d.isMDXComponent=!0}}]);