Skip to content

Commit

Permalink
More core cleanup.
Browse files Browse the repository at this point in the history
  • Loading branch information
lukeelmers committed Apr 8, 2021
1 parent 0b46dd4 commit e75649e
Show file tree
Hide file tree
Showing 11 changed files with 56 additions and 23 deletions.
2 changes: 0 additions & 2 deletions src/core/server/environment/write_pid_file.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ export const writePidFile = async ({
logger.warn(message, {
process: {
pid: process.pid,
// @ts-expect-error ECS custom field
path,
},
});
Expand All @@ -46,7 +45,6 @@ export const writePidFile = async ({
logger.debug(`wrote pid file to ${path}`, {
process: {
pid: process.pid,
// @ts-expect-error ECS custom field
path,
},
});
Expand Down
6 changes: 3 additions & 3 deletions src/core/server/http/logging/get_response_log.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ describe('getEcsResponseLog', () => {
},
});
const result = getEcsResponseLog(req, logger);
expect(result.url.query).toMatchInlineSnapshot(`"a=hello&b=world"`);
expect(result.url!.query).toMatchInlineSnapshot(`"a=hello&b=world"`);
expect(result.message).toMatchInlineSnapshot(`"GET /path?a=hello&b=world 200 - 1.2KB"`);
});

Expand All @@ -124,7 +124,7 @@ describe('getEcsResponseLog', () => {
query: { a: '¡hola!' },
});
const result = getEcsResponseLog(req, logger);
expect(result.url.query).toMatchInlineSnapshot(`"a=%C2%A1hola!"`);
expect(result.url!.query).toMatchInlineSnapshot(`"a=%C2%A1hola!"`);
expect(result.message).toMatchInlineSnapshot(`"GET /path?a=%C2%A1hola! 200 - 1.2KB"`);
});
});
Expand All @@ -148,7 +148,7 @@ describe('getEcsResponseLog', () => {
response: Boom.badRequest(),
});
const result = getEcsResponseLog(req, logger);
expect(result.http.response.status_code).toBe(400);
expect(result.http!.response!.status_code).toBe(400);
});

describe('filters sensitive headers', () => {
Expand Down
5 changes: 5 additions & 0 deletions src/core/server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,11 @@ export type { IRenderOptions } from './rendering';
export type {
Logger,
LoggerFactory,
Ecs,
EcsEventCategory,
EcsEventKind,
EcsEventOutcome,
EcsEventType,
LogMeta,
LogRecord,
LogLevel,
Expand Down
15 changes: 15 additions & 0 deletions src/core/server/logging/__snapshots__/logging_system.test.ts.snap

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,14 @@ describe('MetaRewritePolicy', () => {

describe('mode: update', () => {
it('updates existing properties in LogMeta', () => {
// @ts-expect-error ECS custom meta
const log = createLogRecord({ a: 'before' });
const policy = createPolicy('update', [{ path: 'a', value: 'after' }]);
expect(policy.rewrite(log).meta!.a).toBe('after');
});

it('updates nested properties in LogMeta', () => {
// @ts-expect-error ECS custom meta
const log = createLogRecord({ a: 'before a', b: { c: 'before b.c' }, d: [0, 1] });
const policy = createPolicy('update', [
{ path: 'a', value: 'after a' },
Expand Down Expand Up @@ -60,6 +62,7 @@ describe('MetaRewritePolicy', () => {
{ path: 'd', value: 'hi' },
]);
const log = createLogRecord({
// @ts-expect-error ECS custom meta
a: 'a',
b: 'b',
c: 'c',
Expand All @@ -80,6 +83,7 @@ describe('MetaRewritePolicy', () => {
{ path: 'a.b', value: 'foo' },
{ path: 'a.c', value: 'bar' },
]);
// @ts-expect-error ECS custom meta
const log = createLogRecord({ a: { b: 'existing meta' } });
const { meta } = policy.rewrite(log);
expect(meta!.a.b).toBe('foo');
Expand All @@ -106,12 +110,14 @@ describe('MetaRewritePolicy', () => {

describe('mode: remove', () => {
it('removes existing properties in LogMeta', () => {
// @ts-expect-error ECS custom meta
const log = createLogRecord({ a: 'goodbye' });
const policy = createPolicy('remove', [{ path: 'a' }]);
expect(policy.rewrite(log).meta!.a).toBeUndefined();
});

it('removes nested properties in LogMeta', () => {
// @ts-expect-error ECS custom meta
const log = createLogRecord({ a: 'a', b: { c: 'b.c' }, d: [0, 1] });
const policy = createPolicy('remove', [{ path: 'b.c' }, { path: 'd[1]' }]);
expect(policy.rewrite(log).meta).toMatchInlineSnapshot(`
Expand All @@ -127,6 +133,7 @@ describe('MetaRewritePolicy', () => {
});

it('has no effect if property does not exist', () => {
// @ts-expect-error ECS custom meta
const log = createLogRecord({ a: 'a' });
const policy = createPolicy('remove', [{ path: 'b' }]);
expect(policy.rewrite(log).meta).toMatchInlineSnapshot(`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ describe('RewriteAppender', () => {
const appender = new RewriteAppender(config);
appenderMocks.forEach((mock) => appender.addAppender(...mock));

const log1 = createLogRecord({ a: 'b' });
const log2 = createLogRecord({ c: 'd' });
const log1 = createLogRecord({ user_agent: { name: 'a' } });
const log2 = createLogRecord({ user_agent: { name: 'b' } });

appender.append(log1);

Expand All @@ -109,8 +109,8 @@ describe('RewriteAppender', () => {
const appender = new RewriteAppender(config);
appender.addAppender(...createAppenderMock('mock1'));

const log1 = createLogRecord({ a: 'b' });
const log2 = createLogRecord({ c: 'd' });
const log1 = createLogRecord({ user_agent: { name: 'a' } });
const log2 = createLogRecord({ user_agent: { name: 'b' } });

appender.append(log1);

Expand Down
5 changes: 5 additions & 0 deletions src/core/server/logging/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ export { LogLevel } from '@kbn/logging';
export type {
DisposableAppender,
Appender,
Ecs,
EcsEventCategory,
EcsEventKind,
EcsEventOutcome,
EcsEventType,
LogRecord,
Layout,
LoggerFactory,
Expand Down
6 changes: 6 additions & 0 deletions src/core/server/logging/logger.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ test('`trace()` correctly forms `LogRecord` and passes it to all appenders.', ()
});
}

// @ts-expect-error ECS custom meta
logger.trace('message-2', { trace: true });
for (const appenderMock of appenderMocks) {
expect(appenderMock.append).toHaveBeenCalledTimes(2);
Expand Down Expand Up @@ -75,6 +76,7 @@ test('`debug()` correctly forms `LogRecord` and passes it to all appenders.', ()
});
}

// @ts-expect-error ECS custom meta
logger.debug('message-2', { debug: true });
for (const appenderMock of appenderMocks) {
expect(appenderMock.append).toHaveBeenCalledTimes(2);
Expand Down Expand Up @@ -105,6 +107,7 @@ test('`info()` correctly forms `LogRecord` and passes it to all appenders.', ()
});
}

// @ts-expect-error ECS custom meta
logger.info('message-2', { info: true });
for (const appenderMock of appenderMocks) {
expect(appenderMock.append).toHaveBeenCalledTimes(2);
Expand Down Expand Up @@ -150,6 +153,7 @@ test('`warn()` correctly forms `LogRecord` and passes it to all appenders.', ()
});
}

// @ts-expect-error ECS custom meta
logger.warn('message-3', { warn: true });
for (const appenderMock of appenderMocks) {
expect(appenderMock.append).toHaveBeenCalledTimes(3);
Expand Down Expand Up @@ -195,6 +199,7 @@ test('`error()` correctly forms `LogRecord` and passes it to all appenders.', ()
});
}

// @ts-expect-error ECS custom meta
logger.error('message-3', { error: true });
for (const appenderMock of appenderMocks) {
expect(appenderMock.append).toHaveBeenCalledTimes(3);
Expand Down Expand Up @@ -240,6 +245,7 @@ test('`fatal()` correctly forms `LogRecord` and passes it to all appenders.', ()
});
}

// @ts-expect-error ECS custom meta
logger.fatal('message-3', { fatal: true });
for (const appenderMock of appenderMocks) {
expect(appenderMock.append).toHaveBeenCalledTimes(3);
Expand Down
4 changes: 4 additions & 0 deletions src/core/server/logging/logging_system.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ test('uses default memory buffer logger until config is provided', () => {

// We shouldn't create new buffer appender for another context name.
const anotherLogger = system.get('test', 'context2');
// @ts-expect-error ECS custom meta
anotherLogger.fatal('fatal message', { some: 'value' });

expect(bufferAppendSpy).toHaveBeenCalledTimes(2);
Expand All @@ -62,6 +63,7 @@ test('flushes memory buffer logger and switches to real logger once config is pr
const logger = system.get('test', 'context');

logger.trace('buffered trace message');
// @ts-expect-error ECS custom meta
logger.info('buffered info message', { some: 'value' });
logger.fatal('buffered fatal message');

Expand Down Expand Up @@ -159,6 +161,7 @@ test('attaches appenders to appenders that declare refs', async () => {
);

const testLogger = system.get('tests');
// @ts-expect-error ECS custom meta
testLogger.warn('This message goes to a test context.', { a: 'hi', b: 'remove me' });

expect(mockConsoleLog).toHaveBeenCalledTimes(1);
Expand Down Expand Up @@ -233,6 +236,7 @@ test('asLoggerFactory() only allows to create new loggers.', async () => {
);

logger.trace('buffered trace message');
// @ts-expect-error ECS custom meta
logger.info('buffered info message', { some: 'value' });
logger.fatal('buffered fatal message');

Expand Down
14 changes: 4 additions & 10 deletions src/core/server/metrics/logging/get_ops_metrics_log.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,25 +80,19 @@ describe('getEcsOpsMetricsLog', () => {
expect(logMeta.message).toMatchInlineSnapshot(`""`);
});

it('specifies correct ECS version', () => {
const logMeta = getEcsOpsMetricsLog(createBaseOpsMetrics());
expect(logMeta.ecs.version).toBe('1.7.0');
});

it('provides an ECS-compatible response', () => {
const logMeta = getEcsOpsMetricsLog(createBaseOpsMetrics());
expect(logMeta).toMatchInlineSnapshot(`
Object {
"ecs": Object {
"version": "1.7.0",
},
"event": Object {
"category": Array [
"process",
"host",
],
"kind": "metric",
"type": "info",
"type": Array [
"info",
],
},
"host": Object {
"os": Object {
Expand Down Expand Up @@ -127,6 +121,6 @@ describe('getEcsOpsMetricsLog', () => {
const logMeta = getEcsOpsMetricsLog(createBaseOpsMetrics());
expect(logMeta.event!.kind).toBe('metric');
expect(logMeta.event!.category).toEqual(expect.arrayContaining(['process', 'host']));
expect(logMeta.event!.type).toBe('info');
expect(logMeta.event!.type).toEqual(expect.arrayContaining(['info']));
});
});
7 changes: 3 additions & 4 deletions src/core/server/metrics/metrics_service.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,16 +182,15 @@ describe('MetricsService', () => {
Array [
"",
Object {
"ecs": Object {
"version": "1.7.0",
},
"event": Object {
"category": Array [
"process",
"host",
],
"kind": "metric",
"type": "info",
"type": Array [
"info",
],
},
"host": Object {
"os": Object {
Expand Down

0 comments on commit e75649e

Please sign in to comment.