feat(telemetry): Phase 3 — cluster resolve/ignore, audit logging, webhook alerts, metrics endpoint, Cosmos indexes

This commit is contained in:
saravanakumardb1 2026-02-17 10:50:29 -08:00
parent 80a4459f81
commit 056f3236b6

View File

@ -0,0 +1,159 @@
#!/usr/bin/env bash
# ──────────────────────────────────────────────────────────────────
# Cosmos DB — Telemetry Container Indexing Policies
#
# Run once to apply composite indexes optimized for the query patterns
# used by the telemetry module (events, clusters, policies).
#
# Prerequisites:
# - Azure CLI installed and authenticated
# - COSMOS_ACCOUNT_NAME and COSMOS_RESOURCE_GROUP env vars set
# - Database name: lysnrai (or set COSMOS_DATABASE)
# ──────────────────────────────────────────────────────────────────
set -euo pipefail
ACCOUNT="${COSMOS_ACCOUNT_NAME:?Set COSMOS_ACCOUNT_NAME}"
RG="${COSMOS_RESOURCE_GROUP:?Set COSMOS_RESOURCE_GROUP}"
DB="${COSMOS_DATABASE:-lysnrai}"
echo "🔧 Applying telemetry indexing policies..."
echo " Account: $ACCOUNT | Database: $DB | Resource Group: $RG"
# ── telemetry_events ─────────────────────────────────────────────
# Query patterns:
# - WHERE productId = X AND occurredAt >= Y ORDER BY occurredAt DESC
# - + userId, platform, channel, eventType, module filters
echo "📦 telemetry_events..."
az cosmosdb sql container update \
--account-name "$ACCOUNT" \
--resource-group "$RG" \
--database-name "$DB" \
--name telemetry_events \
--idx '{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{ "path": "/productId/?" },
{ "path": "/pk/?" },
{ "path": "/userId/?" },
{ "path": "/anonymousInstallId/?" },
{ "path": "/platform/?" },
{ "path": "/channel/?" },
{ "path": "/eventType/?" },
{ "path": "/module/?" },
{ "path": "/eventName/?" },
{ "path": "/occurredAt/?" },
{ "path": "/receivedAt/?" },
{ "path": "/osFamily/?" },
{ "path": "/appVersion/?" },
{ "path": "/buildNumber/?" }
],
"excludedPaths": [
{ "path": "/message/?" },
{ "path": "/stackTrace/?" },
{ "path": "/tags/*" },
{ "path": "/metrics/*" },
{ "path": "/context/*" },
{ "path": "/*" }
],
"compositeIndexes": [
[
{ "path": "/productId", "order": "ascending" },
{ "path": "/occurredAt", "order": "descending" }
],
[
{ "path": "/productId", "order": "ascending" },
{ "path": "/platform", "order": "ascending" },
{ "path": "/occurredAt", "order": "descending" }
],
[
{ "path": "/productId", "order": "ascending" },
{ "path": "/eventType", "order": "ascending" },
{ "path": "/occurredAt", "order": "descending" }
],
[
{ "path": "/productId", "order": "ascending" },
{ "path": "/userId", "order": "ascending" },
{ "path": "/occurredAt", "order": "descending" }
]
]
}' \
--output none
# ── telemetry_error_clusters ─────────────────────────────────────
# Query patterns:
# - WHERE productId = X ORDER BY totalCount DESC
# - + platform, module, lastSeenAt filters
echo "📦 telemetry_error_clusters..."
az cosmosdb sql container update \
--account-name "$ACCOUNT" \
--resource-group "$RG" \
--database-name "$DB" \
--name telemetry_error_clusters \
--idx '{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{ "path": "/productId/?" },
{ "path": "/pk/?" },
{ "path": "/platform/?" },
{ "path": "/module/?" },
{ "path": "/severity/?" },
{ "path": "/status/?" },
{ "path": "/totalCount/?" },
{ "path": "/lastSeenAt/?" },
{ "path": "/firstSeenAt/?" }
],
"excludedPaths": [
{ "path": "/affectedVersions/*" },
{ "path": "/affectedUserIds/*" },
{ "path": "/affectedInstallIds/*" },
{ "path": "/affectedOsFamilies/*" },
{ "path": "/*" }
],
"compositeIndexes": [
[
{ "path": "/productId", "order": "ascending" },
{ "path": "/totalCount", "order": "descending" }
],
[
{ "path": "/productId", "order": "ascending" },
{ "path": "/status", "order": "ascending" },
{ "path": "/totalCount", "order": "descending" }
]
]
}' \
--output none
# ── telemetry_collection_policies ────────────────────────────────
# Query patterns:
# - WHERE productId = X ORDER BY priority DESC
echo "📦 telemetry_collection_policies..."
az cosmosdb sql container update \
--account-name "$ACCOUNT" \
--resource-group "$RG" \
--database-name "$DB" \
--name telemetry_collection_policies \
--idx '{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{ "path": "/productId/?" },
{ "path": "/priority/?" },
{ "path": "/enabled/?" }
],
"excludedPaths": [
{ "path": "/targeting/*" },
{ "path": "/*" }
],
"compositeIndexes": [
[
{ "path": "/productId", "order": "ascending" },
{ "path": "/priority", "order": "descending" }
]
]
}' \
--output none
echo "✅ Telemetry indexing policies applied successfully."