From 5a91ed8c735b71300a84702d7b2ff432b71b6023 Mon Sep 17 00:00:00 2001 From: Justin George Date: Fri, 5 Jan 2024 18:05:25 -0800 Subject: [PATCH 1/5] pump all env vars into aggregator --- docker-compose.dev.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 91c0b9ddb2..00b4ab2dbb 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -75,6 +75,7 @@ services: context: ./docker/otel-collector target: dev environment: + HYPERDX_API_KEY: ${HYPERDX_API_KEY} HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL} volumes: - ./docker/otel-collector/config.yaml:/etc/otelcol-contrib/config.yaml @@ -99,12 +100,23 @@ services: ports: - 8001:8001 environment: + CLICKHOUSE_LOG_LEVEL: ${HYPERDX_LOG_LEVEL} + EXPRESS_SESSION_SECRET: 'hyperdx is cool 👋' + HDX_NODE_ADVANCED_NETWORK_CAPTURE: 1 + HDX_NODE_BETA_MODE: 1 + HDX_NODE_CONSOLE_CAPTURE: 1 + SENTRY_DSN: ${SENTRY_DSN} + INGESTOR_API_URL: 'http://ingestor:8002' + MINER_API_URL: 'http://miner:5123' + OTEL_EXPORTER_OTLP_ENDPOINT: 'http://otel-collector:4318' + OTEL_SERVICE_NAME: 'hdx-oss-dev-aggregator' APP_TYPE: 'aggregator' CLICKHOUSE_HOST: http://ch-server:8123 CLICKHOUSE_PASSWORD: aggregator CLICKHOUSE_USER: aggregator FRONTEND_URL: 'http://localhost:8080' # need to be localhost (CORS) HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL} + HYPERDX_API_KEY: ${HYPERDX_API_KEY} MONGO_URI: 'mongodb://db:27017/hyperdx' NODE_ENV: development PORT: 8001 From 5aedf801cff4a262a39386bae26eb8a64a59d3d0 Mon Sep 17 00:00:00 2001 From: Justin George Date: Fri, 5 Jan 2024 18:05:42 -0800 Subject: [PATCH 2/5] Revert "Revert "Sql Obfuscator: Make use of sql obfuscation in aggregator to add `db.sql.normalized` property" (#192)" This reverts commit ccdb3fcf795c31a8d392ce1748a815ce2c90f937. --- .changeset/odd-geckos-worry.md | 5 + packages/api/src/config.ts | 1 + packages/api/src/gobin/LICENSE | 21 +++ packages/api/src/gobin/sql_obfuscator_arm64 | Bin 0 -> 2034820 bytes packages/api/src/gobin/sql_obfuscator_x64 | Bin 0 -> 1983608 bytes packages/api/src/gobin/src/go.mod | 5 + packages/api/src/gobin/src/go.sum | 10 ++ packages/api/src/gobin/src/sql_obfuscator.go | 50 +++++++ packages/api/src/routers/aggregator/root.ts | 6 +- .../__snapshots__/logParser.test.ts.snap | 4 +- .../api/src/utils/__tests__/logParser.test.ts | 133 ++++++++++-------- .../src/utils/__tests__/sqlObfuscator.test.ts | 53 +++++++ packages/api/src/utils/logParser.ts | 29 ++-- packages/api/src/utils/sqlObfuscator.ts | 93 ++++++++++++ 14 files changed, 340 insertions(+), 70 deletions(-) create mode 100644 .changeset/odd-geckos-worry.md create mode 100644 packages/api/src/gobin/LICENSE create mode 100755 packages/api/src/gobin/sql_obfuscator_arm64 create mode 100755 packages/api/src/gobin/sql_obfuscator_x64 create mode 100644 packages/api/src/gobin/src/go.mod create mode 100644 packages/api/src/gobin/src/go.sum create mode 100644 packages/api/src/gobin/src/sql_obfuscator.go create mode 100644 packages/api/src/utils/__tests__/sqlObfuscator.test.ts create mode 100644 packages/api/src/utils/sqlObfuscator.ts diff --git a/.changeset/odd-geckos-worry.md b/.changeset/odd-geckos-worry.md new file mode 100644 index 0000000000..559389fa57 --- /dev/null +++ b/.changeset/odd-geckos-worry.md @@ -0,0 +1,5 @@ +--- +'@hyperdx/api': patch +--- + +Add experimental sql obfuscator diff --git a/packages/api/src/config.ts b/packages/api/src/config.ts index 9c455275fe..0518983177 100644 --- a/packages/api/src/config.ts +++ b/packages/api/src/config.ts @@ -26,3 +26,4 @@ export const PORT = Number.parseInt(env.PORT as string); export const REDIS_URL = env.REDIS_URL as string; export const SERVER_URL = env.SERVER_URL as string; export const USAGE_STATS_ENABLED = env.USAGE_STATS_ENABLED !== 'false'; +export const OBFUSCATE_SQL = env.OBFUSCATE_SQL !== 'false'; diff --git a/packages/api/src/gobin/LICENSE b/packages/api/src/gobin/LICENSE new file mode 100644 index 0000000000..fec91553f1 --- /dev/null +++ b/packages/api/src/gobin/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Datadog, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/packages/api/src/gobin/sql_obfuscator_arm64 b/packages/api/src/gobin/sql_obfuscator_arm64 new file mode 100755 index 0000000000000000000000000000000000000000..57f6add691723e7578fd21823c8e166c847f489e GIT binary patch literal 2034820 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%0DprX*QUxK)0emsb7VDalUyNAf}QG*!%{YOGc; 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