GSLHTTPAvailable since: v1 The Observables Filter configures the Proxy to emit a JSON payload with every request made to the microservice. This JSON Payload contains a variety of different information about the request being made, as well as the user/system issuing the request. These Observables can then be aggregated to perform analysis like: audits, user-experience tracking, etc.
Observable publishing defaults to stdout
but can also be published to a Kafka topic or location on disk.
Configuration
The base GSL type is AuditFilter
Show response body in the observable object.
Sets the eventType field of the observable; used to sort and group messages by service/region/environment/etc in later analysis.
Publish observable message to a Kafka topic
Block requests until an observable has been successfully published to Kafka. Only applies if `useKafka` is `true`.
Type of encryption. Must be 'aes' or blank.
Must be blank or base 64 encoded string of 16, 24, or 32 bytes. 32 bytes is recommended.
User supplied number to identify the key used in encryption.
The Kafka topic that will hold the published observable messages.
If true, Kafka will be discovered through a zookeeper node. Default is false.
Comma delimited list of Kafka broker addresses, or if `kafkaZKDiscover` is `true`, a list of ZooKeeper addresses.
Enable TLS communication to the supplied kafka brokers.
List of file URLs that point to trusts to be used when connecting to kafka.
File URL pointing to certificate to use when connecting to kafka over TLS
File URL pointing to certificate key to use when connecting to kafka
Certificate server name to use when connecting to kafka.
Example
Payload encryption can be enabled in the filter config. Each encryption key should be assigned a unique ID.
gsl.#AuditFilter & {
#options: {
emitFullResponse: true
useKafka: false
enforceAudit: false
logLevel: "debug"
encryptionAlgorithm: "aes"
encryptionKey: "kvTujluRwliCWBWQvvvIxQr2Fxw3tY4cNCfkdlEobtQ="
encryptionKeyID: 1
}
}
Payloads
Turning on full response payloads (emitFullResponse: true
) can cause significant amounts of data to be written to the payload. The observables filter will attempt to write the entire response, even if it’s a gigabyte payload, so take care.