Skip to content

Commit

Permalink
Merge branch 'main' into mikeshi/local-mode-v0
Browse files Browse the repository at this point in the history
  • Loading branch information
MikeShi42 committed Dec 17, 2023
2 parents 58b9ad3 + 29d1e03 commit c7fdbd2
Show file tree
Hide file tree
Showing 103 changed files with 2,775 additions and 1,049 deletions.
5 changes: 0 additions & 5 deletions .changeset/angry-goats-notice.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
'@hyperdx/app': patch
---

feat: setup clickhouse migration tool
fix: extend level inference scanning range
5 changes: 0 additions & 5 deletions .changeset/cool-ads-fail.md

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/few-weeks-count.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@hyperdx/app': minor
---

Introduce Mantine.dev v6 Component Library
7 changes: 0 additions & 7 deletions .changeset/grumpy-paws-do.md

This file was deleted.

8 changes: 0 additions & 8 deletions .changeset/itchy-pandas-live.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/light-zoos-add.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/little-colts-teach.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/long-mirrors-explode.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/new-donkeys-protect.md

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
'@hyperdx/app': minor
---

feat: Log Side Panel styling
Overhaul Properties viewer
5 changes: 5 additions & 0 deletions .changeset/serious-carrots-doubt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@hyperdx/api': minor
---

fix: infer log level by the order of severity
5 changes: 0 additions & 5 deletions .changeset/silent-keys-prove.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/slimy-bananas-juggle.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/spicy-elephants-develop.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/three-forks-eat.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/twelve-flowers-complain.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/unlucky-timers-exercise.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/young-pans-search.md

This file was deleted.

2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Used by docker-compose.yml
IMAGE_NAME=ghcr.io/hyperdxio/hyperdx
IMAGE_VERSION=1.2.0
IMAGE_VERSION=1.3.0

# Set up domain URLs
HYPERDX_API_PORT=8000
Expand Down
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": true
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
Expand Down
1 change: 1 addition & 0 deletions docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ services:
HDX_NODE_CONSOLE_CAPTURE: 1
HYPERDX_API_KEY: ${HYPERDX_API_KEY}
HYPERDX_LOG_LEVEL: ${HYPERDX_LOG_LEVEL}
SENTRY_DSN: ${SENTRY_DSN}
INGESTOR_API_URL: 'http://ingestor:8002'
MINER_API_URL: 'http://miner:5123'
MONGO_URI: 'mongodb://db:27017/hyperdx'
Expand Down
36 changes: 19 additions & 17 deletions docker/ingestor/core.toml
Original file line number Diff line number Diff line change
Expand Up @@ -527,32 +527,34 @@ if exists(.ts) {
if is_nullish(.st) {
header = ""
if is_object(.r) && !is_nullish(.b._hdx_body) {
header = slice(to_string(.b._hdx_body) ?? "", start: 0, end: 160) ?? ""
header = slice(to_string(.b._hdx_body) ?? "", start: 0, end: 256) ?? ""
} else {
header = slice(to_string(.r) ?? "", start: 0, end: 160) ?? ""
header = slice(to_string(.r) ?? "", start: 0, end: 256) ?? ""
}
if contains(header, "info", case_sensitive: false) {
.st = "info"
} else if contains(header, "warn", case_sensitive: false) {
.st = "warn"
# should infer level by the order of severity
if contains(header, "emerg", case_sensitive: false) {
.st = "emergency"
} else if contains(header, "alert", case_sensitive: false) {
.st = "alert"
} else if contains(header, "crit", case_sensitive: false) {
.st = "critical"
} else if contains(header, "fatal", case_sensitive: false) {
.st = "fatal"
} else if contains(header, "error", case_sensitive: false) {
.st = "error"
} else if contains(header, "warn", case_sensitive: false) {
.st = "warn"
} else if contains(header, "notice", case_sensitive: false) {
.st = "notice"
} else if contains(header, "info", case_sensitive: false) {
.st = "info"
} else if contains(header, "debug", case_sensitive: false) {
.st = "debug"
} else if contains(header, "trace", case_sensitive: false) {
.st = "trace"
} else if contains(header, "fatal", case_sensitive: false) {
.st = "fatal"
} else if contains(header, "notice", case_sensitive: false) {
.st = "notice"
} else if contains(header, "crit", case_sensitive: false) {
.st = "critical"
} else if contains(header, "emerg", case_sensitive: false) {
.st = "emergency"
} else if contains(header, "alert", case_sensitive: false) {
.st = "alert"
} else {
.st = "info" # mike said that on 2023-07-23
.st = "info"
}
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "hyperdx",
"private": true,
"version": "1.2.0",
"version": "1.3.0",
"license": "MIT",
"workspaces": [
"packages/*"
Expand Down
23 changes: 23 additions & 0 deletions packages/api/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
# @hyperdx/api

## 1.3.0

### Minor Changes

- ff38d75: feat: extract and ingest more metrics context (aggregation
temporality, unit and monotonicity)
- 6f2c75e: refactor: split metrics chart endpoint `name` query param into `type`
and `name` params (changing an internal API) feat: add validation for metrics
chart endpoint using zod
- 27f1b7e: feat: metrics alerting support
- 8c8c476: feat: add is_delta + is_monotonic fields to metric_stream table
(REQUIRES DB MIGRATION)
- 20b1f17: feat: external api v1 route (REQUIRES db migration) + Mongo DB
migration script
- e8c26d8: feat: time format ui addition

### Patch Changes

- 3a93196: Fix Sentry exception rendering error in side panel, add Sentry SDK to
API server.
- 8c8c476: feat: setup clickhouse migration tool
- 141fce0: Filter out NaN values from metric charts

## 1.2.0

### Minor Changes
Expand Down
3 changes: 2 additions & 1 deletion packages/api/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@hyperdx/api",
"version": "1.2.0",
"version": "1.3.0",
"license": "MIT",
"private": true,
"engines": {
Expand All @@ -11,6 +11,7 @@
"@hyperdx/lucene": "^3.1.1",
"@hyperdx/node-logger": "^0.2.8",
"@hyperdx/node-opentelemetry": "^0.3.0",
"@sentry/node": "^7.85.0",
"@slack/webhook": "^6.1.0",
"compression": "^1.7.4",
"connect-mongo": "^4.6.0",
Expand Down
41 changes: 33 additions & 8 deletions packages/api/src/api-app.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import * as Sentry from '@sentry/node';
import MongoStore from 'connect-mongo';
import compression from 'compression';
import express from 'express';
Expand All @@ -13,9 +14,26 @@ import routers from './routers/api';
import usageStats from './tasks/usageStats';
import { appErrorHandler } from './middleware/error';
import { expressLogger } from './utils/logger';
import { isUserAuthenticated } from './middleware/auth';

const app: express.Application = express();

if (config.SENTRY_DSN) {
Sentry.init({
dsn: config.SENTRY_DSN,
environment: config.NODE_ENV,
release: config.CODE_VERSION,
});

Sentry.setContext('hyperdx', {
serviceName: config.OTEL_SERVICE_NAME,
});
}

// RequestHandler creates a separate execution context using domains, so that every
// transaction/span/breadcrumb is attached to its own Hub instance
app.use(Sentry.Handlers.requestHandler());

const sess: session.SessionOptions & { cookie: session.CookieOptions } = {
resave: false,
saveUninitialized: false,
Expand Down Expand Up @@ -74,15 +92,19 @@ if (config.USAGE_STATS_ENABLED) {
// ---------------------------------------------------------------------
// ----------------------- Internal Routers ----------------------------
// ---------------------------------------------------------------------
// PUBLIC ROUTES
app.use('/', routers.rootRouter);
app.use('/alerts', routers.alertsRouter);
app.use('/dashboards', routers.dashboardRouter);
app.use('/log-views', routers.logViewsRouter);
app.use('/logs', routers.logsRouter);
app.use('/metrics', routers.metricsRouter);
app.use('/sessions', routers.sessionsRouter);
app.use('/team', routers.teamRouter);
app.use('/webhooks', routers.webhooksRouter);

// PRIVATE ROUTES
app.use('/alerts', isUserAuthenticated, routers.alertsRouter);
app.use('/dashboards', isUserAuthenticated, routers.dashboardRouter);
app.use('/log-views', isUserAuthenticated, routers.logViewsRouter);
app.use('/logs', isUserAuthenticated, routers.logsRouter);
app.use('/me', isUserAuthenticated, routers.meRouter);
app.use('/metrics', isUserAuthenticated, routers.metricsRouter);
app.use('/sessions', isUserAuthenticated, routers.sessionsRouter);
app.use('/team', isUserAuthenticated, routers.teamRouter);
app.use('/webhooks', isUserAuthenticated, routers.webhooksRouter);
// ---------------------------------------------------------------------

// TODO: Separate external API routers from internal routers
Expand All @@ -93,6 +115,9 @@ app.use('/webhooks', routers.webhooksRouter);
app.use('/api/v1', externalRoutersV1);
// ---------------------------------------------------------------------

// The error handler must be before any other error middleware and after all controllers
app.use(Sentry.Handlers.errorHandler());

// error handling
app.use(appErrorHandler);

Expand Down

0 comments on commit c7fdbd2

Please sign in to comment.