Skip to content

Monitor the Logs of a Service

This section involves the steps to observe the logs of a Service on different endpoints, such as DataOS CLI, Metis UI, and Operations App.

DataOS CLI

To monitor the logs of a Service using DataOS CLI, follow the steps below:

  1. On DataOS CLI, execute the following command by replacing the placeholders with the actual values.

    dataos-ctl log -t service -w ${{workspace-name}} -n ${{workflow-name}}
    

    Example Usage:

    dataos-ctl log -t service -w public -n lakehouse-ms  
    INFO[0000] πŸ“ƒ log(public)...                             
    INFO[0001] πŸ“ƒ log(public)...complete                     
    
                   NODE NAME              β”‚ CONTAINER NAME β”‚ ERROR  
    ──────────────────────────────────────┼────────────────┼────────
      lakehouse-ms-mgn0-d-dd7d977f6-9mnc4 β”‚ lakehouse-ms   β”‚        
                # ^ pod name
    -------------------LOGS-------------------
    SLF4J(I): Connected with provider of type [ch.qos.logback.classic.spi.LogbackServiceProvider]
    2025-06-15 23:11:49.493 INFO  [main] i.d.i.rest.RestCatalogApplication - Rest catalog service configured depot: lakehouse depotSecretName: icebase-rw depotSecretAcl: rw
    WARNING: An illegal reflective access operation has occurred
    WARNING: Illegal reflective access by retrofit2.Platform (file:/usr/lib/iceberg-rest/iceberg-rest-catalog.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
    WARNING: Please consider reporting this to the maintainers of retrofit2.Platform
    WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
    WARNING: All illegal access operations will be denied in a future release
    2025-06-15 23:11:52.163 INFO  [main] i.d.i.rest.RestCatalogApplication - Creating Iceberg catalog with properties: {catalog-impl=io.dataos.iceberg.rest.HadoopCatalog, warehouse=abfss://lake001@dlake0bnoss0dsck0stg.dfs.core.windows.net/lakehouse01}
    2025-06-15 23:11:52.372 WARN  [main] o.a.hadoop.util.NativeCodeLoader - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    2025-06-15 23:11:52.877 ERROR [main] o.a.h.f.a.AzureBlobFileSystemStore - Failed to get primary group for root, using user name as primary group name
    2025-06-15 23:11:52.968 INFO  [main] org.apache.iceberg.CatalogUtil - Loading custom FileIO implementation: org.apache.iceberg.hadoop.HadoopFileIO
    2025-06-15 23:11:52.994 INFO  [main] org.eclipse.jetty.util.log - Logging initialized @4326ms to org.eclipse.jetty.util.log.Slf4jLog
    2025-06-15 23:11:53.094 INFO  [main] org.eclipse.jetty.server.Server - jetty-9.4.43.v20210629; built: 2021-06-30T11:07:22.254Z; git: 526006ecfa3af7f1a27ef3a288e2bef7ea9dd7e8; jvm 11.0.24+8-post-Debian-2deb11u1
    2025-06-15 23:11:53.165 INFO  [main] o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@73bb573d{/,null,AVAILABLE}
    2025-06-15 23:11:53.174 INFO  [main] o.e.jetty.server.AbstractConnector - Started ServerConnector@27e44e9c{HTTP/1.1, (http/1.1)}{0.0.0.0:8099}
    2025-06-15 23:11:53.174 INFO  [main] org.eclipse.jetty.server.Server - Started @4506ms
    2025-06-15 23:11:53.174 INFO  [main] i.d.i.rest.RestCatalogApplication - Iceberg REST service started on port 8099
    

    The logs in the above example show that:

    • The Service has started successfully.
    • It initialized logging, environment configuration, and integration with Azure.
    • Warnings during startup are safe to ignore.
    • The REST API is exposed on port 8099.

    This is expected behavior for a healthy Service in DataOS.

Metis UI

To monitor the logs of a Service on the Metis Catalog UI, follow the steps below:

  1. Open the Metis Catalog.

    Open the Metis Catalog

  2. Search for the Service by name.

    Search the Service in Metis

  3. Click on the Service that needs to be monitored and navigate to the β€˜Runtime’ section.

    Service runtime in Metis

  4. Click on any run name for which you want to monitor the logs, and navigate to the β€˜Pod Logs’ section.

    Pod Logs in Metis

    The logs in the above example show that:

    • The Service has started successfully.
    • It initialized logging, environment configuration, and integration with Azure.
    • Warnings during startup are safe to ignore.
    • The REST API is exposed on port 8099.

    This is expected behavior for a healthy Service in DataOS.

Operations App

To monitor the logs of a Service on the Operations App, follow the steps below:

  1. Open the Operations app.

    Open the Operations app

  2. Navigate to User Space β†’ Resources β†’ Service and search for the Service by name.

    Operations > Resources > Service

  3. Click on the Service that needs to be monitored and navigate to the β€˜Resource Runtime’ section.

    Service resource runtime in Operations

  4. Click on any runtime node for which you want to monitor the logs, and navigate to the β€˜Runtime Node Logs’ section.

    Runtime Node Logs in Operations

    The logs in the above example show that:

    • The Service has started successfully.
    • It initialized logging, environment configuration, and integration with Azure.
    • Warnings during startup are safe to ignore.
    • The REST API is exposed on port 8099.

    This is expected behavior for a healthy Service in DataOS.