@@ -312,7 +312,7 @@ func TestExporterLogs(t *testing.T) {
312
312
expected := []itemRequest {
313
313
{
314
314
Action : []byte (`{"create":{"_index":"logs-attr.dataset.otel-resource.attribute.namespace"}}` ),
315
- Document : []byte (`{"@timestamp":"1970-01-01T00:00:00.000000000Z","attributes":{"attr.foo":"attr.foo.value"},"data_stream":{"dataset":"attr.dataset.otel","namespace":"resource.attribute.namespace","type":"logs"},"dropped_attributes_count":0,"observed_timestamp":"1970-01-01T00:00:00.000000000Z","resource":{"attributes":{"resource.attr.foo":"resource.attr.foo.value"},"dropped_attributes_count":0,"schema_url":""},"severity_number":0,"trace_flags ":0}` ),
315
+ Document : []byte (`{"@timestamp":"1970-01-01T00:00:00.000000000Z","attributes":{"attr.foo":"attr.foo.value"},"data_stream":{"dataset":"attr.dataset.otel","namespace":"resource.attribute.namespace","type":"logs"},"dropped_attributes_count":0,"observed_timestamp":"1970-01-01T00:00:00.000000000Z","resource":{"attributes":{"resource.attr.foo":"resource.attr.foo.value"},"dropped_attributes_count":0},"scope":{"dropped_attributes_count":0},"severity_number ":0}` ),
316
316
},
317
317
}
318
318
@@ -821,19 +821,19 @@ func TestExporterMetrics(t *testing.T) {
821
821
expected := []itemRequest {
822
822
{
823
823
Action : []byte (`{"create":{"_index":"metrics-generic.otel-default","dynamic_templates":{"metrics.metric.foo":"histogram"}}}` ),
824
- Document : []byte (`{"@timestamp":"1970-01-01T00:00:00.000000000Z","data_stream":{"dataset":"generic.otel","namespace":"default","type":"metrics"},"metrics":{"metric.foo":{"counts":[1,2,3,4],"values":[0.5,1.5,2.5,3]}},"resource":{"dropped_attributes_count":0,"schema_url":"" }}` ),
824
+ Document : []byte (`{"@timestamp":"1970-01-01T00:00:00.000000000Z","data_stream":{"dataset":"generic.otel","namespace":"default","type":"metrics"},"metrics":{"metric.foo":{"counts":[1,2,3,4],"values":[0.5,1.5,2.5,3]}},"resource":{"dropped_attributes_count":0},"scope":{"dropped_attributes_count":0 }}` ),
825
825
},
826
826
{
827
827
Action : []byte (`{"create":{"_index":"metrics-generic.otel-default","dynamic_templates":{"metrics.metric.foo":"histogram"}}}` ),
828
- Document : []byte (`{"@timestamp":"1970-01-01T01:00:00.000000000Z","data_stream":{"dataset":"generic.otel","namespace":"default","type":"metrics"},"metrics":{"metric.foo":{"counts":[4,5,6,7],"values":[2,4.5,5.5,6]}},"resource":{"dropped_attributes_count":0,"schema_url":"" }}` ),
828
+ Document : []byte (`{"@timestamp":"1970-01-01T01:00:00.000000000Z","data_stream":{"dataset":"generic.otel","namespace":"default","type":"metrics"},"metrics":{"metric.foo":{"counts":[4,5,6,7],"values":[2,4.5,5.5,6]}},"resource":{"dropped_attributes_count":0},"scope":{"dropped_attributes_count":0 }}` ),
829
829
},
830
830
{
831
831
Action : []byte (`{"create":{"_index":"metrics-generic.otel-default","dynamic_templates":{"metrics.metric.sum":"gauge_double"}}}` ),
832
- Document : []byte (`{"@timestamp":"1970-01-01T01:00:00.000000000Z","data_stream":{"dataset":"generic.otel","namespace":"default","type":"metrics"},"metrics":{"metric.sum":1.5},"resource":{"dropped_attributes_count":0,"schema_url":"" },"start_timestamp":"1970-01-01T02:00:00.000000000Z"}` ),
832
+ Document : []byte (`{"@timestamp":"1970-01-01T01:00:00.000000000Z","data_stream":{"dataset":"generic.otel","namespace":"default","type":"metrics"},"metrics":{"metric.sum":1.5},"resource":{"dropped_attributes_count":0},"scope":{"dropped_attributes_count":0 },"start_timestamp":"1970-01-01T02:00:00.000000000Z"}` ),
833
833
},
834
834
{
835
835
Action : []byte (`{"create":{"_index":"metrics-generic.otel-default","dynamic_templates":{"metrics.metric.summary":"summary_metrics"}}}` ),
836
- Document : []byte (`{"@timestamp":"1970-01-01T03:00:00.000000000Z","data_stream":{"dataset":"generic.otel","namespace":"default","type":"metrics"},"metrics":{"metric.summary":{"sum":1.5,"value_count":1}},"resource":{"dropped_attributes_count":0,"schema_url":"" },"start_timestamp":"1970-01-01T03:00:00.000000000Z"}` ),
836
+ Document : []byte (`{"@timestamp":"1970-01-01T03:00:00.000000000Z","data_stream":{"dataset":"generic.otel","namespace":"default","type":"metrics"},"metrics":{"metric.summary":{"sum":1.5,"value_count":1}},"resource":{"dropped_attributes_count":0},"scope":{"dropped_attributes_count":0 },"start_timestamp":"1970-01-01T03:00:00.000000000Z"}` ),
837
837
},
838
838
}
839
839
@@ -1031,6 +1031,68 @@ func TestExporterTraces(t *testing.T) {
1031
1031
))
1032
1032
rec .WaitItems (1 )
1033
1033
})
1034
+
1035
+ t .Run ("otel mode" , func (t * testing.T ) {
1036
+ rec := newBulkRecorder ()
1037
+ server := newESTestServer (t , func (docs []itemRequest ) ([]itemResponse , error ) {
1038
+ rec .Record (docs )
1039
+ return itemsAllOK (docs )
1040
+ })
1041
+
1042
+ exporter := newTestTracesExporter (t , server .URL , func (cfg * Config ) {
1043
+ cfg .TracesDynamicIndex .Enabled = true
1044
+ cfg .Mapping .Mode = "otel"
1045
+ })
1046
+
1047
+ traces := ptrace .NewTraces ()
1048
+ resourceSpans := traces .ResourceSpans ()
1049
+ rs := resourceSpans .AppendEmpty ()
1050
+
1051
+ span := rs .ScopeSpans ().AppendEmpty ().Spans ().AppendEmpty ()
1052
+ span .SetName ("name" )
1053
+ span .SetTraceID (pcommon .NewTraceIDEmpty ())
1054
+ span .SetSpanID (pcommon .NewSpanIDEmpty ())
1055
+ span .SetFlags (1 )
1056
+ span .SetDroppedAttributesCount (2 )
1057
+ span .SetDroppedEventsCount (3 )
1058
+ span .SetDroppedLinksCount (4 )
1059
+ span .TraceState ().FromRaw ("foo" )
1060
+ span .SetStartTimestamp (pcommon .NewTimestampFromTime (time .Unix (3600 , 0 )))
1061
+ span .SetEndTimestamp (pcommon .NewTimestampFromTime (time .Unix (7200 , 0 )))
1062
+
1063
+ scopeAttr := span .Attributes ()
1064
+ fillResourceAttributeMap (scopeAttr , map [string ]string {
1065
+ "attr.foo" : "attr.bar" ,
1066
+ })
1067
+
1068
+ resAttr := rs .Resource ().Attributes ()
1069
+ fillResourceAttributeMap (resAttr , map [string ]string {
1070
+ "resource.foo" : "resource.bar" ,
1071
+ })
1072
+
1073
+ spanLink := span .Links ().AppendEmpty ()
1074
+ spanLink .SetTraceID (pcommon .NewTraceIDEmpty ())
1075
+ spanLink .SetSpanID (pcommon .NewSpanIDEmpty ())
1076
+ spanLink .SetFlags (10 )
1077
+ spanLink .SetDroppedAttributesCount (11 )
1078
+ spanLink .TraceState ().FromRaw ("bar" )
1079
+ fillResourceAttributeMap (spanLink .Attributes (), map [string ]string {
1080
+ "link.attr.foo" : "link.attr.bar" ,
1081
+ })
1082
+
1083
+ mustSendTraces (t , exporter , traces )
1084
+
1085
+ rec .WaitItems (1 )
1086
+
1087
+ expected := []itemRequest {
1088
+ {
1089
+ Action : []byte (`{"create":{"_index":"traces-generic.otel-default"}}` ),
1090
+ Document : []byte (`{"@timestamp":"1970-01-01T01:00:00.000000000Z","attributes":{"attr.foo":"attr.bar"},"data_stream":{"dataset":"generic.otel","namespace":"default","type":"traces"},"dropped_attributes_count":2,"dropped_events_count":3,"dropped_links_count":4,"duration":3600000000000,"kind":"Unspecified","links":[{"attributes":{"link.attr.foo":"link.attr.bar"},"dropped_attributes_count":11,"span_id":"","trace_id":"","trace_state":"bar"}],"name":"name","resource":{"attributes":{"resource.foo":"resource.bar"},"dropped_attributes_count":0},"scope":{"dropped_attributes_count":0},"status":{"code":"Unset"},"trace_state":"foo"}` ),
1091
+ },
1092
+ }
1093
+
1094
+ assertItemsEqual (t , expected , rec .Items (), false )
1095
+ })
1034
1096
}
1035
1097
1036
1098
// TestExporterAuth verifies that the Elasticsearch exporter supports
0 commit comments