Tessen

Tessen is the Sensu call-home service. Enabled by default on Sensu backends, Tessen sends anonymized data about Sensu instances to Sensu Inc., including the version, cluster size, number of events processed, and number of resources created (like checks and handlers). We rely on this data to understand how Sensu is being used and make informed decisions about product improvements. Read the blog post to learn more about Tessen.

All data submissions are logged for complete transparency at the info log level and transmitted over HTTPS. See the troubleshooting guide to set the Sensu backend log level and view logs.

Configuring Tessen

You can use the Tessen API and sensuctl to view and manage Tessen configuration. Tessen is enabled by default on Sensu backends and required for licensed Sensu instances. To manage Tessen configuration using sensuctl, configure sensuctl as the default admin user.

To see the status of Tessen:

sensuctl tessen info

To opt out of Tessen:

sensuctl tessen opt-out

NOTE: Licensed Sensu instances override Tessen configuration to opt in at runtime.

You can use the --skip-confirm flag to skip the confirmation step.

sensuctl tessen opt-out --skip-confirm

To opt in to Tessen:

sensuctl tessen opt-in

Tessen specification

Top-level attributes

type
description Top-level attribute specifying the sensuctl create resource type. Tessen configuration should always be of type TessenConfig.
required Required for Tessen configuration in wrapped-json or yaml format for use with sensuctl create.
type String
example
"type": "TessenConfig"
api_version
description Top-level attribute specifying the Sensu API group and version. For Tessen configuration in this version of Sensu, this attribute should always be core/v2.
required Required for Tessen configuration in wrapped-json or yaml format for use with sensuctl create.
type String
example
"api_version": "core/v2"
spec
description Top-level map that includes Tessen configuration spec attributes.
required Required for Tessen configuration in wrapped-json or yaml format for use with sensuctl create.
type Map of key-value pairs
example
"spec": {
  "opt_out": false
}

Spec attributes

opt_out
description Set to false to enable Tessen; set to true to opt out of Tessen. Licensed Sensu instances override the opt_out attribute to false at runtime.
required true
default false
type Boolean
example
opt_out": false

Tessen configuration example

The following example is in wrapped-jsonformat for use with sensuctl create. To manage Tessen using the Tessen API, use non-wrapped json format as shown in the API docs.

type: TessenConfig
api_version: core/v2
spec:
  opt_out: false
{
  "type": "TessenConfig",
  "api_version": "core/v2",
  "spec": {
    "opt_out": false
  }
}

Tessen payload example

If opted in to Tessen, there are various metrics that get sent back to the Tessen service. In the example payload below, you can see that the number of check hooks is sent back to the Tessen service.

{
    "component": "tessend",
    "level": "debug",
    "metric_name": "hook_count",
    "metric_value": 2,
    "msg": "collected a metric for tessen",
    "time": "2019-09-16T09:02:11Z"
}

There are other metrics sent on, such as the number of handlers:

{
    "component": "tessend",
    "level": "debug",
    "metric_name": "handler_count",
    "metric_value": 10,
    "msg": "collected a metric for tessen",
    "time": "2019-09-16T09:02:06Z"
}

Or the number of filters:

{
    "component": "tessend",
    "level": "debug",
    "metric_name": "filter_count",
    "metric_value": 4,
    "msg": "collected a metric for tessen",
    "time": "2019-09-16T09:02:01Z"
}

If opted into Tessen, all of the metrics and payloads sent are avaiable to view in the logs, which you can view via journalctl _COMM=sensu-backend.service. If you’d like to view the events on-disk, please see the guide on configuring systemd to log to disk.