Using Tracing in ACA-PY¶
The aca-py agent supports message tracing, according to the Tracing RFC.
Tracing can be enabled globally, for all messages/events, or it can be enabled on an exchange-by-exchange basis.
Tracing is configured globally for the agent.
ACA-PY Configuration¶
The following options can be specified when starting the aca-py agent:
--trace Generate tracing events.
--trace-target <trace-target>
Target for trace events ("log", "message", or http
endpoint).
--trace-tag <trace-tag>
Tag to be included when logging events.
--trace-label <trace-label>
Label (agent name) used logging events.
The --trace
option enables tracing globally for the agent, the other options can configure the trace destination and content (default is log
).
Tracing can be enabled on an exchange-by-exchange basis, by including { ... "trace": True, ...}
in the JSON payload to the API call (for credential and proof exchanges).
Enabling Tracing in the Alice/Faber Demo¶
The run_demo
script supports the following parameters and environment variables.
Environment variables:
TRACE_ENABLED Flag to enable tracing
TRACE_TARGET_URL Host:port of endpoint to log trace events (e.g. logstash:9700)
DOCKER_NET Docker network to join (must be used if ELK stack is running in docker)
TRACE_TAG Tag to be included in all logged trace events
Parameters:
--trace-log Enables tracing to the standard log output
(sets TRACE_ENABLED, TRACE_TARGET, TRACE_TAG)
--trace-http Enables tracing to an HTTP endpoint (specified by TRACE_TARGET_URL)
(sets TRACE_ENABLED, TRACE_TARGET, TRACE_TAG)
When running the Faber controller, tracing can be enabled using the T
menu option:
Faber | Connected
(1) Issue Credential
(2) Send Proof Request
(3) Send Message
(T) Toggle tracing on credential/proof exchange
(X) Exit?
[1/2/3/T/X] t
>>> Credential/Proof Exchange Tracing is ON
(1) Issue Credential
(2) Send Proof Request
(3) Send Message
(T) Toggle tracing on credential/proof exchange
(X) Exit?
[1/2/3/T/X] t
>>> Credential/Proof Exchange Tracing is OFF
(1) Issue Credential
(2) Send Proof Request
(3) Send Message
(T) Toggle tracing on credential/proof exchange
(X) Exit?
[1/2/3/T/X]
When Exchange Tracing
is ON
, all exchanges will include tracing.
Logging Trace Events to an ELK Stack¶
You can use the ELK
stack in the ELK Stack sub-directory as a target for trace events, just start the ELK stack using the docker-compose file and then in two separate bash shells, startup the demo as follows:
Hooking into event messaging¶
ACA-PY supports sending events to web hooks, which allows the demo agents to display them in the CLI. To also send them to another end point, use the --webhook-url
option, which requires the WEBHOOK_URL
environment variable. Configure an end point running on the docker host system, port 8888, use the following: