Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
c22968f
use an EventLogger throughout a screenshotting flow
tsullivan Apr 18, 2022
7d85baf
unique id for each pipeline flow
tsullivan Apr 18, 2022
0248d85
fix open_url logging
tsullivan Apr 18, 2022
64694f6
add comments
tsullivan Apr 18, 2022
75cba89
add unit test
tsullivan Apr 18, 2022
da7ff56
fix getTimeRangeEnd
tsullivan Apr 18, 2022
e9ade66
improve logging of thrown errors
tsullivan Apr 18, 2022
a9c5acd
Merge branch 'main' into screenshotting/filebeat-monitoring
tsullivan Apr 18, 2022
1f4e9b9
log the number of pixels using zoom
tsullivan Apr 18, 2022
a78929b
Merge remote-tracking branch 'elastic/main' into screenshotting/fileb…
tsullivan Apr 18, 2022
88dc2ee
Merge remote-tracking branch 'elastic/main' into screenshotting/fileb…
tsullivan Apr 19, 2022
5849959
use elementPositionAndAttributes for logging
tsullivan Apr 20, 2022
bb54d07
Merge remote-tracking branch 'elastic/main' into screenshotting/fileb…
tsullivan Apr 20, 2022
8d66a62
fix tests
tsullivan Apr 20, 2022
858fd93
Merge remote-tracking branch 'elastic/main' into screenshotting/fileb…
tsullivan Apr 20, 2022
102b985
replace multiple methods for logging spans with single log method
tsullivan Apr 20, 2022
f6c6875
fix test
tsullivan Apr 20, 2022
902e8df
fix sessionId not showing in error logs
tsullivan Apr 20, 2022
bfdc37e
prettify message
tsullivan Apr 20, 2022
1514727
more logging improvements
tsullivan Apr 20, 2022
d5a83bc
add specific error logging around get screenshots
tsullivan Apr 20, 2022
ea79bb4
function level comments
tsullivan Apr 20, 2022
595f479
error handling around getting render errors
tsullivan Apr 21, 2022
9c8c189
ensure original logger.error always still called
tsullivan Apr 21, 2022
7fd2b50
fix error logs not having the right logging context
tsullivan Apr 21, 2022
1ed749b
more error logging around pdfMaker
tsullivan Apr 21, 2022
35dd0a8
more error logging around re-position elements
tsullivan Apr 21, 2022
dae5003
fix test
tsullivan Apr 21, 2022
195b108
fix error re-throw after logging
tsullivan Apr 21, 2022
e6e4a2f
Merge remote-tracking branch 'elastic/main' into screenshotting/fileb…
tsullivan May 3, 2022
bc461f3
Merge remote-tracking branch 'elastic/main' into screenshotting/fileb…
tsullivan May 3, 2022
836a215
Merge remote-tracking branch 'elastic/main' into screenshotting/fileb…
tsullivan May 3, 2022
d2e5447
use apm to capture the error
tsullivan May 3, 2022
c8a7b74
simplify eventLogger api
tsullivan May 3, 2022
94a1f33
single startTransaction method
tsullivan May 3, 2022
ec1ea15
shortcut methods for screenshot/pdf event log
tsullivan May 3, 2022
9f05bdc
Merge branch 'main' into screenshotting/filebeat-monitoring
kibanamachine May 6, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions x-pack/plugins/screenshotting/common/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ export {
SCREENSHOTTING_EXPRESSION,
SCREENSHOTTING_EXPRESSION_INPUT,
} from './expression';

export const PLUGIN_ID = 'screenshotting';
14 changes: 8 additions & 6 deletions x-pack/plugins/screenshotting/server/formats/pdf/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@
* 2.0.
*/

import { groupBy } from 'lodash';
import type { Values } from '@kbn/utility-types';
import type { Logger, PackageInfo } from '@kbn/core/server';
import { groupBy } from 'lodash';
import type { PackageInfo } from '@kbn/core/server';
import type { LayoutParams } from '../../../common';
import { LayoutTypes } from '../../../common';
import type { Layout } from '../../layouts';
import type { CaptureOptions, CaptureResult, CaptureMetrics } from '../../screenshots';
import type { CaptureMetrics, CaptureOptions, CaptureResult } from '../../screenshots';
import { EventLogger, Transactions } from '../../screenshots/event_logger';
import { pngsToPdf } from './pdf_maker';

/**
Expand Down Expand Up @@ -92,7 +93,7 @@ function getTimeRange(results: CaptureResult['results']) {
}

export async function toPdf(
logger: Logger,
eventLogger: EventLogger,
packageInfo: PackageInfo,
layout: Layout,
{ logo, title }: PdfScreenshotOptions,
Expand All @@ -106,7 +107,7 @@ export async function toPdf(
layout,
logo,
packageInfo,
logger,
eventLogger,
});

return {
Expand All @@ -119,7 +120,8 @@ export async function toPdf(
renderErrors: results.flatMap(({ renderErrors }) => renderErrors ?? []),
};
} catch (error) {
logger.error(`Could not generate the PDF buffer!`);
eventLogger.kbnLogger.error(`Could not generate the PDF buffer!`);
eventLogger.error(error, Transactions.PDF);

throw error;
}
Expand Down
62 changes: 34 additions & 28 deletions x-pack/plugins/screenshotting/server/formats/pdf/pdf_maker/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@
* 2.0.
*/

import type { Logger, PackageInfo } from '@kbn/core/server';
import { PdfMaker } from './pdfmaker';
import type { PackageInfo } from '@kbn/core/server';
import type { Layout } from '../../../layouts';
import { getTracker } from './tracker';
import type { CaptureResult } from '../../../screenshots';
import { Actions, EventLogger, Transactions } from '../../../screenshots/event_logger';
import { PdfMaker } from './pdfmaker';

interface PngsToPdfArgs {
results: CaptureResult['results'];
layout: Layout;
packageInfo: PackageInfo;
logger: Logger;
eventLogger: EventLogger;
logo?: string;
title?: string;
}
Expand All @@ -26,37 +26,43 @@ export async function pngsToPdf({
logo,
title,
packageInfo,
logger,
eventLogger,
}: PngsToPdfArgs): Promise<{ buffer: Buffer; pages: number }> {
const pdfMaker = new PdfMaker(layout, logo, packageInfo, logger);
const tracker = getTracker();
if (title) {
pdfMaker.setTitle(title);
}
results.forEach((result) => {
result.screenshots.forEach((png) => {
tracker.startAddImage();
pdfMaker.addImage(png.data, {
title: png.title ?? undefined,
description: png.description ?? undefined,
});
tracker.endAddImage();
});
});
const { kbnLogger } = eventLogger;
const transactionEnd = eventLogger.startTransaction(Transactions.PDF);

let buffer: Uint8Array | null = null;
let pdfMaker: PdfMaker | null = null;
try {
tracker.startCompile();
pdfMaker = new PdfMaker(layout, logo, packageInfo, kbnLogger);
if (title) {
pdfMaker.setTitle(title);
}
results.forEach((result) => {
result.screenshots.forEach((png) => {
const spanEnd = eventLogger.logPdfEvent(
'add image to PDF file',
Actions.ADD_IMAGE,
'output'
);
pdfMaker?.addImage(png.data, {
title: png.title ?? undefined,
description: png.description ?? undefined,
});
spanEnd();
});
});

const spanEnd = eventLogger.logPdfEvent('compile PDF file', Actions.COMPILE, 'output');
buffer = await pdfMaker.generate();
tracker.endCompile();
spanEnd();

const byteLength = buffer?.byteLength ?? 0;
logger.debug(`PDF buffer byte length: ${byteLength}`);
tracker.setByteLength(byteLength);
} catch (err) {
throw err;
} finally {
tracker.end();
transactionEnd({ labels: { byte_length_pdf: byteLength, pdf_pages: pdfMaker.getPageCount() } });
} catch (error) {
kbnLogger.error(error);
eventLogger.error(error, Actions.COMPILE);
throw error;
}

return { buffer: Buffer.from(buffer.buffer), pages: pdfMaker.getPageCount() };
Expand Down

This file was deleted.

4 changes: 1 addition & 3 deletions x-pack/plugins/screenshotting/server/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,9 @@ export class ScreenshottingPlugin implements Plugin<void, ScreenshottingStart, S

this.screenshots = (async () => {
const browserDriverFactory = await this.browserDriverFactory;
const logger = this.logger.get('screenshot');

return new Screenshots(
browserDriverFactory,
logger,
this.logger,
this.packageInfo,
http,
this.config,
Expand Down

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

Loading