Managing compute logs and error messages
This guide is applicable to Dagster+.
In this guide, we'll cover how to adjust where Dagster+ compute logs are stored and manage masking of error messages in the Dagster+ UI.
By default, Dagster+ ingests structured event logs and compute logs from runs and surfaces error messages from code locations in the UI.
Depending on your organization's needs, you may want to retain these logs in your own infrastructure or mask error message contents.
Modifying compute log storage
Dagster's compute logs are handled by the configured ComputeLogManager
. By default, Dagster+ utilizes the CloudComputeLogManager
which stores logs in a Dagster+-managed Amazon S3 bucket, but you can customize this behavior to store logs in a destination of your choice.
Writing to your own S3 bucket
If using the Kubernetes agent, you can instead forward logs to your own S3 bucket by using the S3ComputeLogManager
.
You can configure the S3ComputeLogManager
in your dagster.yaml
file:
compute_logs:
module: dagster_aws.s3.compute_log_manager
class: S3ComputeLogManager
config:
show_url_only: true
bucket: your-compute-log-storage-bucket
region: your-bucket-region
If you are using Helm to deploy the Kubernetes agent, you can provide the following configuration in your values.yaml
file:
computeLogs:
enabled: true
custom:
module: dagster_aws.s3.compute_log_manager
class: S3ComputeLogManager
config:
show_url_only: true
bucket: your-compute-log-storage-bucket
region: your-bucket-region
Disabling compute log upload
If your organization has its own logging solution which ingests stdout
and stderr
from your compute environment, you may want to disable compute log upload entirely. You can do this with the NoOpComputeLogManager
.
You can configure the NoOpComputeLogManager
in your dagster.yaml
file:
compute_logs:
module: dagster.core.storage.noop_compute_log_manager
class: NoOpComputeLogManager
If you are using Helm to deploy the Kubernetes agent, use the enabled
flag to disable compute log upload:
computeLogs:
enabled: false
Other compute log storage options
For a full list of available compute log storage options, see "Dagster instance configuration".
Masking error messages
By default, Dagster+ surfaces error messages from your code locations in the UI, including when runs fail, sensors or schedules throw an exception, or code locations fail to load. You can mask these error messages in the case that their contents are sensitive.
To mask error messages in a Dagster+ Deployment, set the environment variable DAGSTER_REDACT_USER_CODE_ERRORS
equal to 1
using the Environment variables page in the UI:
Once set, error messages from your code locations will be masked in the UI. A unique error ID will be generated, which you can use to look up the error message in your own logs. This error ID will appear in place of the error message in UI dialogs or in a run's event logs.