config.base.conf Maven / Gradle / Ivy
health.status.path = "/app/isHealthy"
aggregate.stats {
window.sec = 300 // 5 min
retention.days = 2
vnodes = 5
}
kafka {
storename = "haystack-attributor"
close.timeout.ms = 30000
streams {
application.id = "haystack-attributor"
bootstrap.servers = "kafkasvc:9092"
num.stream.threads = 4
request.timeout.ms = 60000
auto.offset.reset = latest
replication.factor = 2
cache.max.bytes.buffering = 41943040
timestamp.extractor = "com.expedia.www.haystack.commons.kstreams.SpanTimestampExtractor"
}
consumer {
topic = "proto-spans"
}
}
elasticsearch {
client {
endpoint = "http://elasticsearch:9200"
conn.timeout.ms = 10000
read.timeout.ms = 5000
}
index {
service.metadata {
name = "service-metadata"
}
}
}
service {
host = "localhost"
port = 8080
idle.timeout.ms = 60000
threads {
min = 1
max = 5
}
client {
connection.timeout.ms = 15000
socket.timeout.ms = 20000
}
}
# For attributing any of the tag(s), use below configuration. You can attribute multiple span tags under a single field in the attributed report.
#
# `items`: Add entries under `items` list for attribution
# `attributeName`: Name of the field under which you want span keys to be attributed. `attribute_name_1` is one of the example from below sample
# `spanTagKeys`: One or more span tag fields which needs be attribted under `attribute.name`. `tag_key_1`, `tag_key_2` are examples
# `operatorType`: Operation that needs to be performed on the values of `span.tag.keys` in that span. Following options are available:
# - `COUNT`: look for tag_key_1 / tag_key_2 in span tags, increment the value for attribute_name_1 for every incoming span and set it in attributed report
# - `SUM`: look for tag_key_3 / tag_key_4 in span tags and sum the value for all the incoming spans and set it to attribute_name_2 in attributed report
# - `BAGGAGE`: add a new tag attribute_name_3 in the attributed report with the value of tag_key_5. If tag_key_5 is not present in span then fallback to default value
# `valueType`: type of value for formatting to be used in email persistence. Its value may one of:
# - `COUNT`: for formattting as per number system like 10K, 1.2Mi etc
# - `BYTES`: for formatting as memory like 1 Kb, 30.2 Mb, 60Gb etc
# - `NONE`
# `valueWhitelistString`: Optional. If we want to attribute only certain spans with values which contains valueWhitelistString. This filter condition is applied on matching spanTagKeys
#
# Refer to the readme for a walk though on how attribution works.
tags.json =
"""
{
"items": [
{
"attributeName": "someKey_agg_count",
"spanTagKeys": [
"key1_for_count",
"key2_for_count"
],
"operatorType": "COUNT",
"defaultValue": "0",
"valueType": "COUNT",
"valueWhitelistString": "only_include_me"
},
{
"attributeName": "someKey_agg_sum",
"spanTagKeys": [
"key1_for_sum",
"key2_for_sum"
],
"operatorType": "SUM",
"defaultValue": "0",
"valueType": "BYTES"
},
{
"attributeName": "someKey_bagg",
"spanTagKeys": [
"key1_for_bagg"
],
"operatorType": "BAGGAGE",
"defaultValue": "baggage_default_value",
"valueType": "NONE"
}
]
}
"""