domino logo
About DominoArchitecture
Kubernetes
Cluster RequirementsDomino on EKSDomino Kubernetes Version CompatibilityDomino on GKEDomino on AKSDomino on OpenShiftNVIDIA DGX in DominoDomino in Multi-Tenant Kubernetes ClusterEncryption in Transit
Installation
Installation ProcessConfiguration ReferenceInstaller Configuration ExamplesPrivate or Offline Installationfleetcommand-agent Release NotesInstall Script Downloads
Configuration
Central ConfigurationNotificationsChange The Default Project For New UsersProject Stage ConfigurationDomino Integration With Atlassian Jira
Compute
Manage Domino Compute ResourcesHardware Tier Best PracticesModel Resource QuotasPersistent Volume ManagementAdding a Node Pool to your Domino ClusterRemove a Node from Service
Keycloak Authentication Service
Operations
Domino Application LoggingDomino MonitoringSizing Infrastructure for Domino
Data Management
Data in DominoData Flow In DominoExternal Data VolumesDatasets AdministrationSubmit GDPR Requests
User Management
RolesView User InformationRun a User Activity ReportSchedule a User Activity Report
Environments
Environment Management Best PracticesCache Environment Images in EKS
Disaster Recovery
Control Center
Control Center OverviewExport Control Center Data with The API
Troubleshooting
domino logo
About Domino
Domino Data LabKnowledge BaseData Science BlogTraining
Admin Guide
>
Operations
>
Domino Application Logging

Domino Application Logging

The following are the types of logs produced by the operation of Domino.

  1. Domino execution logs

  2. Domino application logs

Execution logs

These are the logs output by user code running in Domino as a Job, Workspace, App, or Model API. These are available in the Domino web application on the Jobs dashboard, Workspaces Dashboard, App Dashboard, and Model API instance logs. This data is a key part of the Domino reproducibility model, and is kept indefinitely in the Domino blob store.

The system these logs are written to is defined in the installation configuration file at blob_storage.logs.

Application logs

All Domino services output their logs using the standard Kubernetes logging architecture. Relevant logs are printed to stdout or stderr as indicated, and are captured by Kubernetes.

For example, to look at your front end logs you can do the following:

  1. List your all namespaces to find the name of you platform namespace:

    kubectl get namespace

  2. List all the pods in your platform namespace to find the name of a frontend. You will likely have more than one frontend pod.

    kubectl get pods -n <namespace for your platform nodes>

  3. Print the frontend logs for one of your frontends:

    kubectl logs <pod name of your frontend pod> -n <namespace for your platform nodes> -c nucleus-frontend

The most effective way to aggregate logs is to attach a Kubernetes log aggregation utility to monitor the following Kubernetes namespaces used by Domino:

Platform namespace

This namespace hosts the core application components of the Domino application, including API servers, databases, and web interfaces. The name of this namespace is defined in the installer configuration file at namespaces.platform.name. The following components running in this namespace produce the most important logs:

ComponentLogs

nucleus-frontend

The nucleus-frontend pods host the frontend API server that routes all requests to the Domino application. Its logs will contain details on HTTP requests to Domino from the application or another API client. If you see errors in Domino with HTTP error codes like 500, 504, or 401, you can find corresponding logs here.

nucleus-dispatcher

The nucleus-dispatcher pod hosts the Domino scheduling and brokering service that sends user execution pods to Kubernetes for deployment. Errors in communication between Domino and Kubernetes will result in corresponding logs from this service.

keycloak

The keycloak pods hosts the Domino authentication service. The logs for this service will contain a record of authentication events, including additional details on any errors.

cluster-autoscaler

This pod hosts the open-source Kubernetes cluster autoscaler, which controls and manages autoscaling resources. The logs for this service will contain records of scaling events, both scaling up new nodes in response to demand and scaling down idle resources, including additional details on any errors.

Compute grid namespace

This namespace hosts user executions plus Domino environment builds. The name of this namespace is defined in the installer configuration file at namespaces.compute.name.

Logs in this namespace correspond to ephemeral pods hosting user work. Each pod will contain a user-defined environment container, whose logs are described previously as Execution logs. There are additional supporting containers in those pods, and their logs might contain additional information on any errors or behavior seen with specific Domino executions.

Domino advises that you aggregate and keep at least 30 days of logs to facilitate debugging. These logs can be harvested with a variety of Kubernetes log aggregation utilities, including:

  • Loggly

  • Splunk

  • NewRelic

Domino Data LabKnowledge BaseData Science BlogTraining
Copyright © 2022 Domino Data Lab. All rights reserved.