Releases: Snowflake-Labs/snowflake-event-table-to-otlp-exporter
Releases · Snowflake-Labs/snowflake-event-table-to-otlp-exporter
Release list
v0.2.0
Breaking Changes
- [Snowpark Deployments] The stored procedure now has 7 arguments instead of 6 (
optionsJSON appended). You will need to drop and recreate it (instead of updating in-place).15_snowpark_post-deploy.sqlproc-grant DDL, smoke-testCALL, and taskCALLupdated;99_cleanup.sqlDROP PROCEDUREsignature updated accordingly. - [Developer Tooling] Dev SQL files (
50_dev_telemetry_gen.sql) moved underdev/sql/to separate development/test resources from production deployment scripts.
Known Issues
- A stream delta with many rows sharing the same
RESOURCE_ATTRIBUTESproduces a single OTLP document that can exceed librdkafka's 1 MBmessage.max.byteslimit, causingMSG_SIZE_TOO_LARGEand stalling the pipeline. A fix for this is planned for the next release.
Added
optionsJSON parameter (7th arg) onPUSH_STREAM_TO_KAFKA(default'{}') — allows passing secondary/debug config settings without exposing further top-level args. See Snowflake Deployment for more details. Similar config values are exposed as ENVs in the local runner as described in Local Config.- PrivateLink egress support for the Snowpark path via new
ET2OTLP_NET_RULE_TYPEsession variable insql/00_config.sql(defaultHOST_PORT; set toPRIVATE_HOST_PORTfor PrivateLink NLB brokers).10_snowpark_pre-deploy.sqlnow uses it to build the network rule. ET2OTLP_KAFKA_SSL_INSECUREenv var (local runner) and"ssl_insecure": truein the procoptionsJSON — disables TLS certificate verification for dev/test brokers where the broker cert does not match the DNS name (e.g. MSK behind an NLB). Loud WARNING at startup; never enable in production.ET2OTLP_KAFKA_DEBUGenv var (local runner) and"kafka_debug": "..."in the procoptionsJSON — enables librdkafka wire-level debug contexts (broker,security,protocol, etc.), validated against the librdkafka 2.2.0 context list at startup.- Kafka producer
error_cb— routes hard librdkafka failures (TLS/SASL/handshake) into Python logging at ERROR (visible in the account event table for the Snowpark path even without DEBUG). - Additional debug logging throughout
pipeline.py,kafka.py,local_runner.py, andsproc_handler.py(stream gate, transaction boundaries, route stats, Kafka delivery per-topic counts, delivery callbacks).- Startup
log.debugin local runner for full Kafka config (client_id, topic_prefix, ssl_insecure, kafka_debug, SASL details).
- Startup
- Producer-config secret redaction (
sasl.password,sasl.username,ssl.key.password) via a new sharedlogging_configmodule (redact_producer_config). - A script to help manage PyPI vs Anaconda dependency names + versions, wired into
.pre-commit-config.yaml.
Changed
dev/docker-compose.yamlwas renamed todev/compose.yamlto match modern naming standards.local_runner.pystartup logging replaced inlinebasicConfigcall withconfigure_logging()from the newlogging_configmodule.sproc_handler.pystartup log now includes bootstrap server, security protocol, andoptionsvalue; error log now records exception type alongside message.produce_allnow logs per-topic message counts at INFO before flush and logs delivery success at DEBUG via_on_delivery.snowflake-connector-pythonpromoted from dev-only to a direct runtime dependency (pinned>=4.6.0,<=4.6.0) for explicit channel alignment.- Bump dependencies to Snowflake Anaconda channel max:
snowflake-snowpark-python<=1.53.0snowflake-connector-python<=4.6.0
- Documentation updates and improvements.
Fixed
- RBAC Fix:
EXECUTE TASK/EXECUTE MANAGED TASKgrants moved fromSVC_RLtoRUNTIME_AR(access-role-first convention); smoke-testCALLnow runs asSVC_RLto validate least-privilege instead ofACCOUNTADMIN. - RBAC isolation when the source is the built-in
SNOWFLAKE.TELEMETRY.EVENTS, the requiredSNOWFLAKE.EVENTS_ADMINapplication role is now granted to a dedicatedET2OTLP_EVENTS_ADMIN_ARaccess role (notREAD_AR). This keeps the elevated privilege (which also carries TRUNCATE/DELETE) out of the general read path. Custom event tables are unaffected.
Full Changelog: v0.1.0...v0.2.0