The OpenTelemetry collector should be able to collect metrics from the IRIS metrics API as well as the structured logs from the logdmn.  I don't have a working example configuration file to show you yet but I expect to have one by June 20th.  

As for a completely shameless plug here for my session on Observability in IRIS at Global Summit, I'm planning to cover the pillars of modern observability stacks, how IRIS fits into them.  At the moment, I'm still deciding which commercial stack to demo (DataDog, perhaps?).  I'll also be covering SAM, recent & future updates,  and how it fits into the bigger observability picture

In Embedded Python, exceptions flow back-and-forth between ObjectScript and Python as you'd expect. 

If your Python code raises an exception, but does not handle it, then the exception is passed to the ObjectScript side.  And vice-versa.  In your example, I'm not sure why you're handling the exception in python and then returning an exception object to the caller.  Why not just not catch the exception and let it get passed along to the ObjectScript side?

I like to bake the timezone into the container when I build it.  That way it'll have the correct timezone no matter where I run it.  Here's an example Dockerfile based on the latest IRIS container that sets the container's timezone to Pacific (aka America/Los_Angeles).

FROM intersystemsdc/iris-community
USER root
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
    apt-get install -yq tzdata && \
    ln -fs /usr/share/zoneinfo/America/Los_Angeles /etc/localtime && \
    dpkg-reconfigure -f noninteractive tzdata
USER irisowner

You can then do a docker build . to create the container, docker image ls, and docker run

Open Exchange applications:
Bob has not followed anybody yet.
Global Masters badges: