<p dir="auto">I am trying to ingest messages from Kafka which were written by Divolte.</p>
<p dir="auto">Divolte uses Avro encoding for the messages it writes to Kafka. I believe it builds the Avro messages in a non-standard way. This from <a href="http://divolte-releases.s3-website-eu-west-1.amazonaws.com/divolte-collector/0.9.0/userdoc/html/getting_started.html#writing-to-kafka" rel="nofollow">Divolte's docs</a>:</p>
<blockquote>
<h2 dir="auto">Data in Kafka</h2>
<p dir="auto">Avro files on HDFS are written with the schema in the header. Unfortunately Kafka doesn’t really have a clear way of passing along the schema. For the messages on Kafka queues we expect the consumer to know the schema in advance, meaning that the messages that are passed onto the queue only contain the raw bytes of the serialized Avro record without any metadata. The key of each message is the party ID that for the event. Divolte Collector provides a small helper library to easily create Kafka consumers in Java using Avro’s code generation support. There is an example Kafka consumer with step by step instruction on getting it up and running in our usage examples repository here: <a href="https://github.com/divolte/divolte-examples/tree/master/tcp-kafka-consumer">https://github.com/divolte/divolte-examples/tree/master/tcp-kafka-consumer</a>.</p>
</blockquote>
<p dir="auto">And the messages Divolte is putting on the Kafka queue look like this:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="key: 0:jro4m5d8:xilY4lXNlasIzvVbEYDFECnbepfZOb_J
value: \x00\x00\x00\xB2\xED\xF0\xA2\x97Z\xDA\xCD\xF0\xA2\x97Z\x14172.25.0.1\x00\x02\x90\x02file:///Users/.../frontend/test/index.html\x02\x80\x1E\x02\xEE\n\x02\x80\x1E\x02\xB2\x12\x02V0:jro4m5d8:xilY4lXNlasIzvVbEYDFECnbepfZOb_J\x02V0:jro4m5d8:SPubeXNlImFqTIBWRTI5Kpt5NfWZ7ic1\x02D0:UdmHBajNonE_ONddXwP2679ks0EYxySf\x1AmyCustomEvent\x02\xF0\x01Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36\x02\fChrome\x02\fChrome\x02\x16Google Inc.\x02\x0EBrowser\x02\x1871.0.3578.98\x02\&quot;Personal computer\x02\bOS X\x02\x0E10.14.0\x02(Apple Computer, Inc."><pre class="notranslate"><code class="notranslate">key: 0:jro4m5d8:xilY4lXNlasIzvVbEYDFECnbepfZOb_J
value: \x00\x00\x00\xB2\xED\xF0\xA2\x97Z\xDA\xCD\xF0\xA2\x97Z\x14172.25.0.1\x00\x02\x90\x02file:///Users/.../frontend/test/index.html\x02\x80\x1E\x02\xEE\n\x02\x80\x1E\x02\xB2\x12\x02V0:jro4m5d8:xilY4lXNlasIzvVbEYDFECnbepfZOb_J\x02V0:jro4m5d8:SPubeXNlImFqTIBWRTI5Kpt5NfWZ7ic1\x02D0:UdmHBajNonE_ONddXwP2679ks0EYxySf\x1AmyCustomEvent\x02\xF0\x01Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36\x02\fChrome\x02\fChrome\x02\x16Google Inc.\x02\x0EBrowser\x02\x1871.0.3578.98\x02\"Personal computer\x02\bOS X\x02\x0E10.14.0\x02(Apple Computer, Inc.
</code></pre></div>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="key: 0:jro4m5d8:xilY4lXNlasIzvVbEYDFECnbepfZOb_J
value: \x00\x00\x00\x9A\x91\xF1\xA2\x97Z\xE6\xF3\xF0\xA2\x97Z\x14172.25.0.1\x00\x02\x90\x02file:///Users/.../frontend/test/index.html\x02\x80\x1E\x02\xEE\n\x02\x80\x1E\x02\xB2\x12\x02V0:jro4m5d8:xilY4lXNlasIzvVbEYDFECnbepfZOb_J\x02V0:jro4m5d8:SPubeXNlImFqTIBWRTI5Kpt5NfWZ7ic1\x02D0:UdmHBajNonE_ONddXwP2679ks0EYxySf\x1AmyCustomEvent\x02\xF0\x01Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36\x02\fChrome\x02\fChrome\x02\x16Google Inc.\x02\x0EBrowser\x02\x1871.0.3578.98\x02\&quot;Personal computer\x02\bOS X\x02\x0E10.14.0\x02(Apple Computer, Inc."><pre class="notranslate"><code class="notranslate">key: 0:jro4m5d8:xilY4lXNlasIzvVbEYDFECnbepfZOb_J
value: \x00\x00\x00\x9A\x91\xF1\xA2\x97Z\xE6\xF3\xF0\xA2\x97Z\x14172.25.0.1\x00\x02\x90\x02file:///Users/.../frontend/test/index.html\x02\x80\x1E\x02\xEE\n\x02\x80\x1E\x02\xB2\x12\x02V0:jro4m5d8:xilY4lXNlasIzvVbEYDFECnbepfZOb_J\x02V0:jro4m5d8:SPubeXNlImFqTIBWRTI5Kpt5NfWZ7ic1\x02D0:UdmHBajNonE_ONddXwP2679ks0EYxySf\x1AmyCustomEvent\x02\xF0\x01Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36\x02\fChrome\x02\fChrome\x02\x16Google Inc.\x02\x0EBrowser\x02\x1871.0.3578.98\x02\"Personal computer\x02\bOS X\x02\x0E10.14.0\x02(Apple Computer, Inc.
</code></pre></div>
<p dir="auto">Following the great tutorial by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Fokko/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Fokko">@Fokko</a> <a href="https://blog.godatadriven.com/divolte-kafka-druid-superset" rel="nofollow">here</a>, I opted to use Druid's <code class="notranslate">schema_inline</code> Avro decoder in my supervisor spec.</p>
<p dir="auto">However, I am still getting parse errors in my ingestion reports.</p>
<p dir="auto">I'm wondering if something changed in the way the Avro extension works since <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Fokko/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Fokko">@Fokko</a> wrote that tutorial?</p>
<p dir="auto">Am I using the wrong Avro decoder?</p>
<p dir="auto">Is there simply no longer a decoder in the Druid Avro extension which can handle messages encoded this way?</p>
<h2 dir="auto">Supervisor</h2>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
  &quot;type&quot; : &quot;kafka&quot;,
	&quot;ioConfig&quot;: {
		&quot;topic&quot;: &quot;livestream&quot;,
		&quot;consumerProperties&quot;: {
			&quot;bootstrap.servers&quot;: &quot;10.0.1.32:9092&quot;
		},
		&quot;taskCount&quot;: 1,
		&quot;replicas&quot;: 1,
		&quot;taskDuration&quot;: &quot;PT5M&quot;
	},
	&quot;dataSchema&quot;: {
		&quot;dataSource&quot;: &quot;livestream&quot;,
		&quot;parser&quot;: {
			&quot;type&quot;: &quot;avro_stream&quot;,
			&quot;avroBytesDecoder&quot;: {
				&quot;type&quot;: &quot;schema_inline&quot;,
				&quot;schema&quot;: {
					&quot;namespace&quot;: &quot;io.divolte.record&quot;,
					&quot;type&quot;: &quot;record&quot;,
					&quot;name&quot;: &quot;DefaultEventRecord&quot;,
					&quot;fields&quot;: [
						{ &quot;name&quot;: &quot;detectedDuplicate&quot;,       &quot;type&quot;: &quot;boolean&quot; },
						{ &quot;name&quot;: &quot;detectedCorruption&quot;,      &quot;type&quot;: &quot;boolean&quot; },
						{ &quot;name&quot;: &quot;firstInSession&quot;,          &quot;type&quot;: &quot;boolean&quot; },
						{ &quot;name&quot;: &quot;timestamp&quot;,               &quot;type&quot;: &quot;long&quot; },
						{ &quot;name&quot;: &quot;remoteHost&quot;,              &quot;type&quot;: &quot;string&quot; },
						{ &quot;name&quot;: &quot;referer&quot;,                 &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;location&quot;,                &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;viewportPixelWidth&quot;,      &quot;type&quot;: [&quot;null&quot;, &quot;int&quot;],    &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;viewportPixelHeight&quot;,     &quot;type&quot;: [&quot;null&quot;, &quot;int&quot;],    &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;screenPixelWidth&quot;,        &quot;type&quot;: [&quot;null&quot;, &quot;int&quot;],    &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;screenPixelHeight&quot;,       &quot;type&quot;: [&quot;null&quot;, &quot;int&quot;],    &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;partyId&quot;,                 &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;sessionId&quot;,               &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;pageViewId&quot;,              &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;eventType&quot;,               &quot;type&quot;: &quot;string&quot;,           &quot;default&quot;: &quot;unknown&quot; },
						{ &quot;name&quot;: &quot;userAgentString&quot;,         &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;userAgentName&quot;,           &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;userAgentFamily&quot;,         &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;userAgentVendor&quot;,         &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;userAgentType&quot;,           &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;userAgentVersion&quot;,        &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;userAgentDeviceCategory&quot;, &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;userAgentOsFamily&quot;,       &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;userAgentOsVersion&quot;,      &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;userAgentOsVendor&quot;,       &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
						{ &quot;name&quot;: &quot;technology&quot;,              &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null }
					]

				}
			},
			&quot;parseSpec&quot;: {
				&quot;format&quot;: &quot;timeAndDims&quot;,
				&quot;timestampSpec&quot;: {
					&quot;column&quot;: &quot;timestamp&quot;,
					&quot;format&quot;: &quot;iso&quot;
				},
				&quot;dimensionsSpec&quot;: {
					&quot;dimensions&quot;: [
						&quot;detectedDuplicate&quot;,
						&quot;detectedCorruption&quot;,
						&quot;firstInSession&quot;,
						&quot;remoteHost&quot;,
						&quot;referer&quot;,
						&quot;location&quot;,
						&quot;viewportPixelWidth&quot;,
						&quot;viewportPixelHeight&quot;,
						&quot;screenPixelWidth&quot;,
						&quot;screenPixelHeight&quot;,
						&quot;partyId&quot;,
						&quot;sessionId&quot;,
						&quot;pageViewId&quot;,
						&quot;eventType&quot;,
						&quot;userAgentString&quot;,
						&quot;userAgentName&quot;,
						&quot;userAgentFamily&quot;,
						&quot;userAgentVendor&quot;,
						&quot;userAgentType&quot;,
						&quot;userAgentVersion&quot;,
						&quot;userAgentDeviceCategory&quot;,
						&quot;userAgentOsFamily&quot;,
						&quot;userAgentOsVersion&quot;,
						&quot;userAgentOsVendor&quot;,
						&quot;technology&quot;
					]
				}
			}
		},
		&quot;metricsSpec&quot;: [{
			&quot;name&quot;: &quot;count&quot;,
			&quot;type&quot;: &quot;count&quot;
			}],
			&quot;granularitySpec&quot;: {
				&quot;type&quot;: &quot;uniform&quot;,
				&quot;segmentGranularity&quot;: &quot;HOUR&quot;,
				&quot;queryGranularity&quot;: &quot;NONE&quot;
			}
		},
		&quot;tuningConfig&quot;: {
			&quot;type&quot;: &quot;kafka&quot;,
			&quot;maxRowsPerSegment&quot;: 5000000,
			&quot;logParseExceptions&quot;: true,
			&quot;maxSavedParseExceptions&quot;: 100
		}
	}"><pre class="notranslate">{
  <span class="pl-ent">"type"</span> : <span class="pl-s"><span class="pl-pds">"</span>kafka<span class="pl-pds">"</span></span>,
	<span class="pl-ent">"ioConfig"</span>: {
		<span class="pl-ent">"topic"</span>: <span class="pl-s"><span class="pl-pds">"</span>livestream<span class="pl-pds">"</span></span>,
		<span class="pl-ent">"consumerProperties"</span>: {
			<span class="pl-ent">"bootstrap.servers"</span>: <span class="pl-s"><span class="pl-pds">"</span>10.0.1.32:9092<span class="pl-pds">"</span></span>
		},
		<span class="pl-ent">"taskCount"</span>: <span class="pl-c1">1</span>,
		<span class="pl-ent">"replicas"</span>: <span class="pl-c1">1</span>,
		<span class="pl-ent">"taskDuration"</span>: <span class="pl-s"><span class="pl-pds">"</span>PT5M<span class="pl-pds">"</span></span>
	},
	<span class="pl-ent">"dataSchema"</span>: {
		<span class="pl-ent">"dataSource"</span>: <span class="pl-s"><span class="pl-pds">"</span>livestream<span class="pl-pds">"</span></span>,
		<span class="pl-ent">"parser"</span>: {
			<span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>avro_stream<span class="pl-pds">"</span></span>,
			<span class="pl-ent">"avroBytesDecoder"</span>: {
				<span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>schema_inline<span class="pl-pds">"</span></span>,
				<span class="pl-ent">"schema"</span>: {
					<span class="pl-ent">"namespace"</span>: <span class="pl-s"><span class="pl-pds">"</span>io.divolte.record<span class="pl-pds">"</span></span>,
					<span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>record<span class="pl-pds">"</span></span>,
					<span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>DefaultEventRecord<span class="pl-pds">"</span></span>,
					<span class="pl-ent">"fields"</span>: [
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>detectedDuplicate<span class="pl-pds">"</span></span>,       <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>boolean<span class="pl-pds">"</span></span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>detectedCorruption<span class="pl-pds">"</span></span>,      <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>boolean<span class="pl-pds">"</span></span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>firstInSession<span class="pl-pds">"</span></span>,          <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>boolean<span class="pl-pds">"</span></span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>timestamp<span class="pl-pds">"</span></span>,               <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>long<span class="pl-pds">"</span></span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>remoteHost<span class="pl-pds">"</span></span>,              <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>referer<span class="pl-pds">"</span></span>,                 <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>location<span class="pl-pds">"</span></span>,                <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>viewportPixelWidth<span class="pl-pds">"</span></span>,      <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>int<span class="pl-pds">"</span></span>],    <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>viewportPixelHeight<span class="pl-pds">"</span></span>,     <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>int<span class="pl-pds">"</span></span>],    <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>screenPixelWidth<span class="pl-pds">"</span></span>,        <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>int<span class="pl-pds">"</span></span>],    <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>screenPixelHeight<span class="pl-pds">"</span></span>,       <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>int<span class="pl-pds">"</span></span>],    <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>partyId<span class="pl-pds">"</span></span>,                 <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>sessionId<span class="pl-pds">"</span></span>,               <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>pageViewId<span class="pl-pds">"</span></span>,              <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>eventType<span class="pl-pds">"</span></span>,               <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>,           <span class="pl-ent">"default"</span>: <span class="pl-s"><span class="pl-pds">"</span>unknown<span class="pl-pds">"</span></span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentString<span class="pl-pds">"</span></span>,         <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentName<span class="pl-pds">"</span></span>,           <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentFamily<span class="pl-pds">"</span></span>,         <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentVendor<span class="pl-pds">"</span></span>,         <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentType<span class="pl-pds">"</span></span>,           <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentVersion<span class="pl-pds">"</span></span>,        <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentDeviceCategory<span class="pl-pds">"</span></span>, <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentOsFamily<span class="pl-pds">"</span></span>,       <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentOsVersion<span class="pl-pds">"</span></span>,      <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentOsVendor<span class="pl-pds">"</span></span>,       <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
						{ <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>technology<span class="pl-pds">"</span></span>,              <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> }
					]

				}
			},
			<span class="pl-ent">"parseSpec"</span>: {
				<span class="pl-ent">"format"</span>: <span class="pl-s"><span class="pl-pds">"</span>timeAndDims<span class="pl-pds">"</span></span>,
				<span class="pl-ent">"timestampSpec"</span>: {
					<span class="pl-ent">"column"</span>: <span class="pl-s"><span class="pl-pds">"</span>timestamp<span class="pl-pds">"</span></span>,
					<span class="pl-ent">"format"</span>: <span class="pl-s"><span class="pl-pds">"</span>iso<span class="pl-pds">"</span></span>
				},
				<span class="pl-ent">"dimensionsSpec"</span>: {
					<span class="pl-ent">"dimensions"</span>: [
						<span class="pl-s"><span class="pl-pds">"</span>detectedDuplicate<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>detectedCorruption<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>firstInSession<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>remoteHost<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>referer<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>location<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>viewportPixelWidth<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>viewportPixelHeight<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>screenPixelWidth<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>screenPixelHeight<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>partyId<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>sessionId<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>pageViewId<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>eventType<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>userAgentString<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>userAgentName<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>userAgentFamily<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>userAgentVendor<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>userAgentType<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>userAgentVersion<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>userAgentDeviceCategory<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>userAgentOsFamily<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>userAgentOsVersion<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>userAgentOsVendor<span class="pl-pds">"</span></span>,
						<span class="pl-s"><span class="pl-pds">"</span>technology<span class="pl-pds">"</span></span>
					]
				}
			}
		},
		<span class="pl-ent">"metricsSpec"</span>: [{
			<span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>count<span class="pl-pds">"</span></span>,
			<span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>count<span class="pl-pds">"</span></span>
			}],
			<span class="pl-ent">"granularitySpec"</span>: {
				<span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>uniform<span class="pl-pds">"</span></span>,
				<span class="pl-ent">"segmentGranularity"</span>: <span class="pl-s"><span class="pl-pds">"</span>HOUR<span class="pl-pds">"</span></span>,
				<span class="pl-ent">"queryGranularity"</span>: <span class="pl-s"><span class="pl-pds">"</span>NONE<span class="pl-pds">"</span></span>
			}
		},
		<span class="pl-ent">"tuningConfig"</span>: {
			<span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>kafka<span class="pl-pds">"</span></span>,
			<span class="pl-ent">"maxRowsPerSegment"</span>: <span class="pl-c1">5000000</span>,
			<span class="pl-ent">"logParseExceptions"</span>: <span class="pl-c1">true</span>,
			<span class="pl-ent">"maxSavedParseExceptions"</span>: <span class="pl-c1">100</span>
		}
	}</pre></div>
<h2 dir="auto">Divolte Conf</h2>
<h3 dir="auto">DefaultEventRecord.avsc</h3>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
    &quot;namespace&quot;: &quot;io.divolte.record&quot;,
    &quot;name&quot;: &quot;DefaultEventRecord&quot;,
    &quot;type&quot;: &quot;record&quot;,
    &quot;fields&quot;: [
        { &quot;name&quot;: &quot;detectedDuplicate&quot;,       &quot;type&quot;: &quot;boolean&quot; },
        { &quot;name&quot;: &quot;detectedCorruption&quot;,      &quot;type&quot;: &quot;boolean&quot; },
        { &quot;name&quot;: &quot;firstInSession&quot;,          &quot;type&quot;: &quot;boolean&quot; },
        { &quot;name&quot;: &quot;timestamp&quot;,               &quot;type&quot;: &quot;long&quot; },
        { &quot;name&quot;: &quot;remoteHost&quot;,              &quot;type&quot;: &quot;string&quot; },
        { &quot;name&quot;: &quot;referer&quot;,                 &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;location&quot;,                &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;viewportPixelWidth&quot;,      &quot;type&quot;: [&quot;null&quot;, &quot;int&quot;],    &quot;default&quot;: null },
        { &quot;name&quot;: &quot;viewportPixelHeight&quot;,     &quot;type&quot;: [&quot;null&quot;, &quot;int&quot;],    &quot;default&quot;: null },
        { &quot;name&quot;: &quot;screenPixelWidth&quot;,        &quot;type&quot;: [&quot;null&quot;, &quot;int&quot;],    &quot;default&quot;: null },
        { &quot;name&quot;: &quot;screenPixelHeight&quot;,       &quot;type&quot;: [&quot;null&quot;, &quot;int&quot;],    &quot;default&quot;: null },
        { &quot;name&quot;: &quot;partyId&quot;,                 &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;sessionId&quot;,               &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;pageViewId&quot;,              &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;eventType&quot;,               &quot;type&quot;: &quot;string&quot;,           &quot;default&quot;: &quot;unknown&quot; },
        { &quot;name&quot;: &quot;userAgentString&quot;,         &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;userAgentName&quot;,           &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;userAgentFamily&quot;,         &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;userAgentVendor&quot;,         &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;userAgentType&quot;,           &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;userAgentVersion&quot;,        &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;userAgentDeviceCategory&quot;, &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;userAgentOsFamily&quot;,       &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;userAgentOsVersion&quot;,      &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;userAgentOsVendor&quot;,       &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null },
        { &quot;name&quot;: &quot;technology&quot;,              &quot;type&quot;: [&quot;null&quot;, &quot;string&quot;], &quot;default&quot;: null }
    ]
}"><pre class="notranslate">{
    <span class="pl-ent">"namespace"</span>: <span class="pl-s"><span class="pl-pds">"</span>io.divolte.record<span class="pl-pds">"</span></span>,
    <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>DefaultEventRecord<span class="pl-pds">"</span></span>,
    <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>record<span class="pl-pds">"</span></span>,
    <span class="pl-ent">"fields"</span>: [
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>detectedDuplicate<span class="pl-pds">"</span></span>,       <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>boolean<span class="pl-pds">"</span></span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>detectedCorruption<span class="pl-pds">"</span></span>,      <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>boolean<span class="pl-pds">"</span></span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>firstInSession<span class="pl-pds">"</span></span>,          <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>boolean<span class="pl-pds">"</span></span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>timestamp<span class="pl-pds">"</span></span>,               <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>long<span class="pl-pds">"</span></span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>remoteHost<span class="pl-pds">"</span></span>,              <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>referer<span class="pl-pds">"</span></span>,                 <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>location<span class="pl-pds">"</span></span>,                <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>viewportPixelWidth<span class="pl-pds">"</span></span>,      <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>int<span class="pl-pds">"</span></span>],    <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>viewportPixelHeight<span class="pl-pds">"</span></span>,     <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>int<span class="pl-pds">"</span></span>],    <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>screenPixelWidth<span class="pl-pds">"</span></span>,        <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>int<span class="pl-pds">"</span></span>],    <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>screenPixelHeight<span class="pl-pds">"</span></span>,       <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>int<span class="pl-pds">"</span></span>],    <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>partyId<span class="pl-pds">"</span></span>,                 <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>sessionId<span class="pl-pds">"</span></span>,               <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>pageViewId<span class="pl-pds">"</span></span>,              <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>eventType<span class="pl-pds">"</span></span>,               <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>,           <span class="pl-ent">"default"</span>: <span class="pl-s"><span class="pl-pds">"</span>unknown<span class="pl-pds">"</span></span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentString<span class="pl-pds">"</span></span>,         <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentName<span class="pl-pds">"</span></span>,           <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentFamily<span class="pl-pds">"</span></span>,         <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentVendor<span class="pl-pds">"</span></span>,         <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentType<span class="pl-pds">"</span></span>,           <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentVersion<span class="pl-pds">"</span></span>,        <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentDeviceCategory<span class="pl-pds">"</span></span>, <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentOsFamily<span class="pl-pds">"</span></span>,       <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentOsVersion<span class="pl-pds">"</span></span>,      <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>userAgentOsVendor<span class="pl-pds">"</span></span>,       <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> },
        { <span class="pl-ent">"name"</span>: <span class="pl-s"><span class="pl-pds">"</span>technology<span class="pl-pds">"</span></span>,              <span class="pl-ent">"type"</span>: [<span class="pl-s"><span class="pl-pds">"</span>null<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>string<span class="pl-pds">"</span></span>], <span class="pl-ent">"default"</span>: <span class="pl-c1">null</span> }
    ]
}</pre></div>
<h3 dir="auto">mapping.groovy</h3>
<div class="highlight highlight-source-groovy notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="mapping {
    map duplicate() onto 'detectedDuplicate'
    map corrupt() onto 'detectedCorruption'
    map firstInSession() onto 'firstInSession'
    map timestamp() onto 'timestamp'
    map remoteHost() onto 'remoteHost'
    map referer() onto 'referer'
    map location() onto 'location'
    map viewportPixelWidth() onto 'viewportPixelWidth'
    map viewportPixelHeight() onto 'viewportPixelHeight'
    map screenPixelWidth() onto 'screenPixelWidth'
    map screenPixelHeight() onto 'screenPixelHeight'
    map partyId() onto 'partyId'
    map sessionId() onto 'sessionId'
    map pageViewId() onto 'pageViewId'
    map eventType() onto 'eventType'

    map userAgentString() onto 'userAgentString'
    def ua = userAgent()
    map ua.name() onto 'userAgentName'
    map ua.family() onto 'userAgentFamily'
    map ua.vendor() onto 'userAgentVendor'
    map ua.type() onto 'userAgentType'
    map ua.version() onto 'userAgentVersion'
    map ua.deviceCategory() onto 'userAgentDeviceCategory'
    map ua.osFamily() onto 'userAgentOsFamily'
    map ua.osVersion() onto 'userAgentOsVersion'
    map ua.osVendor() onto 'userAgentOsVendor'

    map eventParameter('technology') onto 'technology'
}"><pre class="notranslate">mapping {
    map duplicate() onto <span class="pl-s"><span class="pl-pds">'</span>detectedDuplicate<span class="pl-pds">'</span></span>
    map corrupt() onto <span class="pl-s"><span class="pl-pds">'</span>detectedCorruption<span class="pl-pds">'</span></span>
    map firstInSession() onto <span class="pl-s"><span class="pl-pds">'</span>firstInSession<span class="pl-pds">'</span></span>
    map timestamp() onto <span class="pl-s"><span class="pl-pds">'</span>timestamp<span class="pl-pds">'</span></span>
    map remoteHost() onto <span class="pl-s"><span class="pl-pds">'</span>remoteHost<span class="pl-pds">'</span></span>
    map referer() onto <span class="pl-s"><span class="pl-pds">'</span>referer<span class="pl-pds">'</span></span>
    map location() onto <span class="pl-s"><span class="pl-pds">'</span>location<span class="pl-pds">'</span></span>
    map viewportPixelWidth() onto <span class="pl-s"><span class="pl-pds">'</span>viewportPixelWidth<span class="pl-pds">'</span></span>
    map viewportPixelHeight() onto <span class="pl-s"><span class="pl-pds">'</span>viewportPixelHeight<span class="pl-pds">'</span></span>
    map screenPixelWidth() onto <span class="pl-s"><span class="pl-pds">'</span>screenPixelWidth<span class="pl-pds">'</span></span>
    map screenPixelHeight() onto <span class="pl-s"><span class="pl-pds">'</span>screenPixelHeight<span class="pl-pds">'</span></span>
    map partyId() onto <span class="pl-s"><span class="pl-pds">'</span>partyId<span class="pl-pds">'</span></span>
    map sessionId() onto <span class="pl-s"><span class="pl-pds">'</span>sessionId<span class="pl-pds">'</span></span>
    map pageViewId() onto <span class="pl-s"><span class="pl-pds">'</span>pageViewId<span class="pl-pds">'</span></span>
    map eventType() onto <span class="pl-s"><span class="pl-pds">'</span>eventType<span class="pl-pds">'</span></span>

    map userAgentString() onto <span class="pl-s"><span class="pl-pds">'</span>userAgentString<span class="pl-pds">'</span></span>
    <span class="pl-k">def</span> ua <span class="pl-k">=</span> userAgent()
    map ua<span class="pl-k">.</span>name() onto <span class="pl-s"><span class="pl-pds">'</span>userAgentName<span class="pl-pds">'</span></span>
    map ua<span class="pl-k">.</span>family() onto <span class="pl-s"><span class="pl-pds">'</span>userAgentFamily<span class="pl-pds">'</span></span>
    map ua<span class="pl-k">.</span>vendor() onto <span class="pl-s"><span class="pl-pds">'</span>userAgentVendor<span class="pl-pds">'</span></span>
    map ua<span class="pl-k">.</span>type() onto <span class="pl-s"><span class="pl-pds">'</span>userAgentType<span class="pl-pds">'</span></span>
    map ua<span class="pl-k">.</span>version() onto <span class="pl-s"><span class="pl-pds">'</span>userAgentVersion<span class="pl-pds">'</span></span>
    map ua<span class="pl-k">.</span>deviceCategory() onto <span class="pl-s"><span class="pl-pds">'</span>userAgentDeviceCategory<span class="pl-pds">'</span></span>
    map ua<span class="pl-k">.</span>osFamily() onto <span class="pl-s"><span class="pl-pds">'</span>userAgentOsFamily<span class="pl-pds">'</span></span>
    map ua<span class="pl-k">.</span>osVersion() onto <span class="pl-s"><span class="pl-pds">'</span>userAgentOsVersion<span class="pl-pds">'</span></span>
    map ua<span class="pl-k">.</span>osVendor() onto <span class="pl-s"><span class="pl-pds">'</span>userAgentOsVendor<span class="pl-pds">'</span></span>

    map eventParameter(<span class="pl-s"><span class="pl-pds">'</span>technology<span class="pl-pds">'</span></span>) onto <span class="pl-s"><span class="pl-pds">'</span>technology<span class="pl-pds">'</span></span>
}</pre></div>
<h2 dir="auto">Ingestion Report</h2>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
  &quot;ingestionStatsAndErrors&quot;: {
    &quot;taskId&quot;: &quot;index_kafka_livestream_0db516aaf980d12_bjfgbipd&quot;,
    &quot;payload&quot;: {
      &quot;ingestionState&quot;: &quot;COMPLETED&quot;,
      &quot;unparseableEvents&quot;: {
        &quot;buildSegments&quot;: [
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;,
          &quot;Fail to decode avro message!&quot;
        ]
      },
      &quot;rowStats&quot;: {
        &quot;buildSegments&quot;: {
          &quot;processed&quot;: 0,
          &quot;processedWithError&quot;: 0,
          &quot;thrownAway&quot;: 0,
          &quot;unparseable&quot;: 24
        }
      },
      &quot;errorMsg&quot;: null
    },
    &quot;type&quot;: &quot;ingestionStatsAndErrors&quot;
  }
}"><pre class="notranslate">{
  <span class="pl-ent">"ingestionStatsAndErrors"</span>: {
    <span class="pl-ent">"taskId"</span>: <span class="pl-s"><span class="pl-pds">"</span>index_kafka_livestream_0db516aaf980d12_bjfgbipd<span class="pl-pds">"</span></span>,
    <span class="pl-ent">"payload"</span>: {
      <span class="pl-ent">"ingestionState"</span>: <span class="pl-s"><span class="pl-pds">"</span>COMPLETED<span class="pl-pds">"</span></span>,
      <span class="pl-ent">"unparseableEvents"</span>: {
        <span class="pl-ent">"buildSegments"</span>: [
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>,
          <span class="pl-s"><span class="pl-pds">"</span>Fail to decode avro message!<span class="pl-pds">"</span></span>
        ]
      },
      <span class="pl-ent">"rowStats"</span>: {
        <span class="pl-ent">"buildSegments"</span>: {
          <span class="pl-ent">"processed"</span>: <span class="pl-c1">0</span>,
          <span class="pl-ent">"processedWithError"</span>: <span class="pl-c1">0</span>,
          <span class="pl-ent">"thrownAway"</span>: <span class="pl-c1">0</span>,
          <span class="pl-ent">"unparseable"</span>: <span class="pl-c1">24</span>
        }
      },
      <span class="pl-ent">"errorMsg"</span>: <span class="pl-c1">null</span>
    },
    <span class="pl-ent">"type"</span>: <span class="pl-s"><span class="pl-pds">"</span>ingestionStatsAndErrors<span class="pl-pds">"</span></span>
  }
}</pre></div>
<p dir="auto">Apache Druid 24.0.1 is a bug fix release that fixes some issues in the 24.0 release.<br>
<a href="https://github.com/apache/druid/milestone/47?closed=1">See the complete set of changes for additional details</a>.</p>
<h2 dir="auto"><a name="user-content-24-1-bug-fixes" href="#24-1-bug-fixes">#</a> Notable Bug fixes</h2>
<p dir="auto"><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1405368637" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/13214" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/13214/hovercard" href="https://github.com/apache/druid/pull/13214">#13214</a> to fix SQL planning when using the JSON_VALUE function.<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1432783586" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/13297" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/13297/hovercard" href="https://github.com/apache/druid/pull/13297">#13297</a> to fix values that match a range filter on nested columns.<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1370404448" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/13077" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/13077/hovercard" href="https://github.com/apache/druid/pull/13077">#13077</a> to fix detection of nested objects while generating an MSQ SQL in the web-console.<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1394603647" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/13172" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/13172/hovercard" href="https://github.com/apache/druid/pull/13172">#13172</a> to correctly handle overlord leader election even when tasks cannot be reacquired.<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1426857914" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/13273" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/13273/hovercard" href="https://github.com/apache/druid/pull/13273">#13273</a> to fix overlord API failures by de-duplicating task entries in memory.<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1365283581" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/13049" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/13049/hovercard" href="https://github.com/apache/druid/pull/13049">#13049</a> to fix a race condition while processing query context.<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1389053793" data-permission-text="Title is private" data-url="https://github.com/apache/druid/issues/13151" data-hovercard-type="pull_request" data-hovercard-url="/apache/druid/pull/13151/hovercard" href="https://github.com/apache/druid/pull/13151">#13151</a> to fix assertion error in SQL planning.</p>
<h2 dir="auto"><a name="user-content-24-1-credits" href="#24-1-credits">#</a> Credits</h2>
<p dir="auto">Thanks to everyone who contributed to this release!</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/abhishekagarwal87/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/abhishekagarwal87">@abhishekagarwal87</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/AmatyaAvadhanula/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/AmatyaAvadhanula">@AmatyaAvadhanula</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/clintropolis/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/clintropolis">@clintropolis</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gianm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gianm">@gianm</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kfaraz/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kfaraz">@kfaraz</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LakshSingla/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/LakshSingla">@LakshSingla</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/paul-rogers/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/paul-rogers">@paul-rogers</a><br>
<a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vogievetsky/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vogievetsky">@vogievetsky</a></p>