___ ________ ___ _________ ____ __ ______ ___
___ __ ___ __________ ________ __ _______________ _________ __ _______ _________ ____ ____ __ __________ ____________ ____________ _____________________ ____________ __ __________ ____ __ ______ ____ ____ __________ ______
__ ________ ______ ___ _______ _______ ___ _________ ___________ ____ __ ____ ______ __ _ ____ ____ ___ ______ __ _____ __ _ _______ __ ___ ____ _______ __ ________ _____ ________ ___ _____ ____ ___ ___________ __ _ _________ ____ ____ __ ___ _________ ___________
-
_____ __ ____ __ ______ ________
-
_____ __________ __ ____ ____ _____ _______ _________ ___________
______ ___ ________ __________ ________ __ ___ _______________ _________ ____ _____ ___ __________ ____________ __ ____ _____
____ __ _________ _____
_________ ____ ___ ____ ______ ___ __________ __ __________ ____________ ___________ ______ _____________________ ___________ ______ __________ ____ ______ __ _________ ______ ___________ ______ __ __ _________ __ _______ _____ _____ __ ____ __ ______ __________ ____ ________ ____________ ____ __ ___ _______ ____ ________ ____ ________ ________ ____ _____ ___ ______ _________ ___________ ___ ______________ ___ ________ ___ ___ _______ ____ __________ __________ _______
______ ___ ___ _______ _______________
____ _______________ ____ ___ __________________ ________
|
________ |
_______ |
|---|---|
|
____ __ ______ _____ __ __ _________ ______ _______ ___ _____ __ _____ ___ __ ____ __________ _________ __ _____ ____ ___ ___ _______ ___________ __ _____ ___ ______ |
|
|
____ ________ __________ ______ ___ _____ __ _______ |
|
|
____ ______ _____ __ _______ |
|
________
____ ____ _______ ____ _______________________ ____ _______ ___________ __ ______ _____
onAttributesSerializing: (attributes) => ({
...attributes,
'http.url': typeof attributes['http.url'] === 'string'
? attributes['http.url'].replace(/([?&]token=)[^&]+(&|$)/g, '$1<token>$2')
: attributes['http.url'],
____ ____ _______ _____ ___ __ ____ ___ _____ ____ ____ _ ______ _______
context.with(suppressTracing(context.active()), () => {
this._exporter.export([span], result => {
if (result.code !== ExportResultCode.SUCCESS) {
globalErrorHandler(
result.error ??
new Error(
`SimpleSpanProcessor: span export failed (status ${result})`
)
);
}
___ ___ ______ _________________ ____ __________ __ ____ ___ ____ ____ _______ __________
ignoreUrls: [/\/payment\//]
______ ___ ___ ______ _______ _______________
____ _______________ ____ ___ ___________________ ________
|
________ |
_______ |
|---|---|
|
____ __ ______ _____ __ __ _________ ______ |
|
|
____ ________ __________ ______ ___ _____ __ _______ |
|
|
____ ______ _____ __ _______ |
|
________
____ ____ _______ _______ __ ______ ___ ___ ____ _____
.removeSpanAttribute(stringKey("http.user_agent"))
.rejectSpansByName(spanName -> spanName.contains("ignored"))
// sensitive data in the login http.url attribute
// is redacted before data moves to the exporter
____ ____ _______ ____ __________ __ ____ ______
options.spanFilter = { spanData in
var spanData = spanData
if spanData.name == "DropThis" {
return nil // spans with this name aren't sent
}
var atts = spanData.attributes
atts["http.url"] = .string("redacted") // change values for all urls
return spanData.settingAttributes(atts)
}
______ ___ ___ ______ ___ _______________
____ _______________ ____ ___ _______________ ________
|
________ |
_______ |
|---|---|
|
____ __ ______ _____ __ __ _________ ______ |
|
|
____ ________ __________ ______ ___ _____ __ _______ |
|
|
____ ______ _____ __ _______ |
|
________
___ ___ ______ _________________ ____ __________ __ ____ ___ ____ ____ _______ __________
ignoreUrls: [/\/payment\//]
____ ____ _______ ____ __________ __ ____ ______
options.spanFilter = { spanData in
var spanData = spanData
if spanData.name == "DropThis" {
return nil // spans with this name aren't sent
}
var atts = spanData.attributes
atts["http.url"] = .string("redacted") // change values for all urls
return spanData.settingAttributes(atts)
}
___ ____
___ _________ ______ ____________ ____ ________ __ ___ __ ___ _____ ________ __ _______ ___ ___ _________ __ ______ _____________ _______
-
__________________ ______ ____________
-
___________________ ______ ____________