Insight Collector Service¶
This collector service collects and publishes various reports at the end of each workflow. These reports are available as workflow attachments. Currently, the following reports are published:
- Execution log: workflow execution log (
executionlog.txt
by default)
This service exposes no user-facing endpoints.
Environment Variables¶
Logging¶
You can set the INSIGHTCOLLECTOR_DEBUG_LEVEL
(all upper-cased) or DEBUG_LEVEL
environment variables
to DEBUG
to add additional information in the console for the launched service. It defaults to
INFO
. (Please note that setting DEBUG_LEVEL
to DEBUG
will produce tons of logs.)
The possible values are NOTSET
, DEBUG
, INFO
, WARNING
, ERROR
, and FATAL
. Those values
are from the most verbose, NOTSET
, which shows all logs, to the least verbose, FATAL
, which
only shows fatal errors.
If INSIGHTCOLLECTOR_DEBUG_LEVEL
is not defined then the value of DEBUG_LEVEL
is used (or INFO
if
DEBUG_LEVEL
is not defined either).
Access logs are only shown at NOTSET
and DEBUG
levels.
Insight Collector Configuration¶
The INSIGHTCOLLECTOR_CONFIGURATION
(all upper-cased) environment variable, if defined,
must refer to an existing file that contains reports configuration.
Tip
If the content of this referred file changes, the execution log configuration used by the Insight Collector service will change accordingly. You do not need to restart the service.
Reports Configuration File¶
If you want to configure reports settings, you must create a YAML file.
Reports configuration files must use YAML syntax and may have a .yml
or .yaml
file extension.
A reports configuration file has one mandatory section: insights
. It
must contain at least one entity definition. An entity is defined by his name
,
kind
and spec
properties, which are all mandatory. Currently, you may configure
only the execution log depth:
insights:
- name: executionlog
kind: ExecutionLog
spec:
step-depth: 0
job-depth: 0
max-command-length: 0
This entity must be named executionlog
. Its spec
section may contain up to three properties:
step-depth
: displayed steps depth.0
shows all steps,1
hides the nested steps,2
displays the steps produced by providers.job-depth
: displayed jobs depth.0
shows all jobs,1
hides the nested jobs,2
displays the jobs produced by generators.max-command-length
: sets the maximum display length of run commands, measured in characters.0
displays full commands, while any positive integer specifies a maximum length.
Service Configuration File¶
This service has a configuration file (insightcollector.yaml
by default) that describes
the common service configuration options.
If no configuration file is found it will default to the following values:
apiVersion: opentestfactory.org/v1beta2
kind: ServiceConfig
current-context: default
contexts:
- name: default
context:
port: 443
host: 127.0.0.1
ssl_context: adhoc
eventbus:
endpoint: https://127.0.0.1:38368
token: token
The configuration included in the ‘allinone’ image is described in “Common settings.” The
listening port is 7796 and the bind address is 127.0.0.1
as the service exposes no user-facing endpoints.
Subscriptions¶
The Tracker publisher plugin subscribes to the following events:
kind |
apiVersion |
---|---|
WorkflowCompleted |
opentestfactory.org/v1alpha1 |
WorkflowCancelled |
opentestfactory.org/v1alpha1 |
The Tracker publisher plugin exposes an /inbox
endpoint that is used by the event bus to post relevant events.
Launch Command¶
If you want to manually start the Insight Collector service, use the following command:
python -m opentf.plugins.insightcollector.main [--context context] [--config configfile]
Additional command-line options are available and described in “Command-line options.”