___ ________ ___ _________ ____ __ ______ ___

___ __ ___ __________ ________ __ _______________ _________ __ _______ _________ ____ ____ __ __________ ____________ ____________ _____________________ ____________ __ __________ ____ __ ______ ____ ____ __________ ______

__ ________ ______ ___ _______ _______ ___ _________ ___________ ____ __ ____ ______ __ _ ____ ____ ___ ______ __ _____ __ _ _______ __ ___ ____ _______ __ ________ _____ ________ ___ _____ ____ ___ ___________ __ _ _________ ____ ____ __ ___ _________ ___________

  • _____ __ ____ __ ______ ________

  • _____ __________ __ ____ ____ _____ _______ _________ ___________

______ ___ ________ __________ ________ __ ___ _______________ _________ ____ _____ ___ __________ ____________ __ ____ _____

____ __ _________ _____

_________ ____ ___ ____ ______ ___ __________ __ __________ ____________ ___________ ______ _____________________ ___________ ______ __________ ____ ______ __ _________ ______ ___________ ______ __ __ _________ __ _______ _____ _____ __ ____ __ ______ __________ ____ ________ ____________ ____ __ ___ _______ ____ ________ ____ ________ ________ ____ _____ ___ ______ _________ ___________ ___ ______________ ___ ________ ___ ___ _______ ____ __________ __________ _______

______ ___ ___ _______ _______________

____ _______________ ____ ___ __________________ ________

________

_______

____ __ ______ _____ __ __ _________ ______ _______ ___ _____ __ _____ ___ __ ____ __________ _________ __ _____ ____ ___ ___ _______ ___________ __ _____ ___ ______

_______________________

____ ________ __________ ______ ___ _____ __ _______

_______________________

____ ______ _____ __ _______

  • __________

  • _______________

________

____ ____ _______ ____ _______________________ ____ _______ ___________ __ ______ _____

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)
}

___ ____

___ _________ ______ ____________ ____ ________ __ ___ __ ___ _____ ________ __ _______ ___ ___ _________ __ ______ _____________ _______