@aws-lambda-powertools/metrics
Advanced tools
Comparing version 1.4.0 to 1.4.1
@@ -18,6 +18,28 @@ import { Utility } from '@aws-lambda-powertools/commons'; | ||
* | ||
* ### Functions usage with middleware | ||
* | ||
* Using this middleware on your handler function will automatically flush metrics after the function returns or throws an error. | ||
* Additionally, you can configure the middleware to easily: | ||
* * ensure that at least one metric is emitted before you flush them | ||
* * capture a `ColdStart` a metric | ||
* * set default dimensions for all your metrics | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Metrics, logMetrics } from '@aws-lambda-powertools/metrics'; | ||
* import middy from '@middy/core'; | ||
* | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
* const lambdaHandler = async (_event: any, _context: any) => { | ||
* ... | ||
* }; | ||
* | ||
* export const handler = middy(lambdaHandler).use(logMetrics(metrics)); | ||
* ``` | ||
* | ||
* ### Object oriented way with decorator | ||
* | ||
* If you are used to TypeScript Class usage to encapsulate your Lambda handler you can leverage the [@metrics.logMetrics()](./_aws_lambda_powertools_metrics.Metrics.html#logMetrics) decorator to automatically: | ||
* * create cold start metric | ||
* * capture a `ColdStart` metric | ||
* * flush buffered metrics | ||
@@ -30,19 +52,19 @@ * * throw on empty metrics | ||
* import { Metrics, MetricUnits } from '@aws-lambda-powertools/metrics'; | ||
* import { Callback, Context } from 'aws-lambda'; | ||
* import { LambdaInterface } from '@aws-lambda-powertools/commons'; | ||
* | ||
* const metrics = new Metrics({ namespace:'MyService', serviceName:'withDecorator' }); | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
* export class MyFunctionWithDecorator { | ||
* class Lambda implements LambdaInterface { | ||
* | ||
* // FYI: Decorator might not render properly in VSCode mouse over due to https://github.com/microsoft/TypeScript/issues/39371 and might show as *@metrics* instead of `@metrics.logMetrics` | ||
* // FYI: Decorator might not render properly in VSCode mouse over due to https://github.com/microsoft/TypeScript/issues/47679 and might show as *@metrics* instead of `@metrics.logMetrics` | ||
* | ||
* @metrics.logMetrics({ captureColdStartMetric: true, throwOnEmptyMetrics: true }) | ||
* public handler(_event: any, _context: Context, _callback: Callback<any>): void | Promise<void> { | ||
* // ... | ||
* metrics.addMetric('test-metric', MetricUnits.Count, 10); | ||
* // ... | ||
* public handler(_event: any, _context: any): Promise<void> { | ||
* // ... | ||
* metrics.addMetric('test-metric', MetricUnits.Count, 10); | ||
* // ... | ||
* } | ||
* } | ||
* | ||
* const handlerClass = new MyFunctionWithDecorator(); | ||
* const handlerClass = new Lambda(); | ||
* export const handler = handlerClass.handler.bind(handlerClass); | ||
@@ -60,3 +82,3 @@ * ``` | ||
* | ||
* const metrics = new Metrics({ namespace: 'MyService', serviceName: 'MyFunction' }); | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
@@ -122,7 +144,6 @@ * export const handler = async (_event: any, _context: any): Promise<void> => { | ||
* import { Metrics } from '@aws-lambda-powertools/metrics'; | ||
* import { Context } from 'aws-lambda'; | ||
* | ||
* const metrics = new Metrics({ namespace:'serverlessAirline', serviceName:'orders' }); | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
* export const handler = async (event: any, context: Context): Promise<void> => { | ||
* export const handler = async (event: any, _context: any): Promise<void> => { | ||
* metrics.captureColdStartMetric(); | ||
@@ -144,10 +165,10 @@ * }; | ||
* import { Metrics } from '@aws-lambda-powertools/metrics'; | ||
* import { Callback, Context } from 'aws-lambda'; | ||
* import { LambdaInterface } from '@aws-lambda-powertools/commons'; | ||
* | ||
* const metrics = new Metrics({ namespace:'CdkExample', serviceName:'withDecorator' }); | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
* export class MyFunctionWithDecorator { | ||
* class Lambda implements LambdaInterface { | ||
* | ||
* @metrics.logMetrics({ captureColdStartMetric: true }) | ||
* public handler(_event: any, _context: Context, _callback: Callback<any>): void | Promise<any> { | ||
* public handler(_event: any, _context: any): Promise<void> { | ||
* // ... | ||
@@ -157,3 +178,3 @@ * } | ||
* | ||
* const handlerClass = new MyFunctionWithDecorator(); | ||
* const handlerClass = new Lambda(); | ||
* export const handler = handlerClass.handler.bind(handlerClass); | ||
@@ -174,3 +195,3 @@ * ``` | ||
* | ||
* const metrics = new Metrics({ namespace: 'CdkExample', serviceName: 'MyFunction' }); // Sets metric namespace, and service as a metric dimension | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); // Sets metric namespace, and service as a metric dimension | ||
* | ||
@@ -215,7 +236,6 @@ * export const handler = async (_event: any, _context: any): Promise<void> => { | ||
* import { Metrics } from '@aws-lambda-powertools/metrics'; | ||
* import { Context } from 'aws-lambda'; | ||
* | ||
* const metrics = new Metrics({ namespace:'serverlessAirline', serviceName:'orders' }); | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName:'orders' }); | ||
* | ||
* export const handler = async (event: any, context: Context): Promise<void> => { | ||
* export const handler = async (_event: any, _context: any): Promise<void> => { | ||
* metrics.throwOnEmptyMetrics(); | ||
@@ -222,0 +242,0 @@ * metrics.publishStoredMetrics(); // will throw since no metrics added. |
@@ -25,6 +25,28 @@ "use strict"; | ||
* | ||
* ### Functions usage with middleware | ||
* | ||
* Using this middleware on your handler function will automatically flush metrics after the function returns or throws an error. | ||
* Additionally, you can configure the middleware to easily: | ||
* * ensure that at least one metric is emitted before you flush them | ||
* * capture a `ColdStart` a metric | ||
* * set default dimensions for all your metrics | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Metrics, logMetrics } from '@aws-lambda-powertools/metrics'; | ||
* import middy from '@middy/core'; | ||
* | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
* const lambdaHandler = async (_event: any, _context: any) => { | ||
* ... | ||
* }; | ||
* | ||
* export const handler = middy(lambdaHandler).use(logMetrics(metrics)); | ||
* ``` | ||
* | ||
* ### Object oriented way with decorator | ||
* | ||
* If you are used to TypeScript Class usage to encapsulate your Lambda handler you can leverage the [@metrics.logMetrics()](./_aws_lambda_powertools_metrics.Metrics.html#logMetrics) decorator to automatically: | ||
* * create cold start metric | ||
* * capture a `ColdStart` metric | ||
* * flush buffered metrics | ||
@@ -37,19 +59,19 @@ * * throw on empty metrics | ||
* import { Metrics, MetricUnits } from '@aws-lambda-powertools/metrics'; | ||
* import { Callback, Context } from 'aws-lambda'; | ||
* import { LambdaInterface } from '@aws-lambda-powertools/commons'; | ||
* | ||
* const metrics = new Metrics({ namespace:'MyService', serviceName:'withDecorator' }); | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
* export class MyFunctionWithDecorator { | ||
* class Lambda implements LambdaInterface { | ||
* | ||
* // FYI: Decorator might not render properly in VSCode mouse over due to https://github.com/microsoft/TypeScript/issues/39371 and might show as *@metrics* instead of `@metrics.logMetrics` | ||
* // FYI: Decorator might not render properly in VSCode mouse over due to https://github.com/microsoft/TypeScript/issues/47679 and might show as *@metrics* instead of `@metrics.logMetrics` | ||
* | ||
* @metrics.logMetrics({ captureColdStartMetric: true, throwOnEmptyMetrics: true }) | ||
* public handler(_event: any, _context: Context, _callback: Callback<any>): void | Promise<void> { | ||
* // ... | ||
* metrics.addMetric('test-metric', MetricUnits.Count, 10); | ||
* // ... | ||
* public handler(_event: any, _context: any): Promise<void> { | ||
* // ... | ||
* metrics.addMetric('test-metric', MetricUnits.Count, 10); | ||
* // ... | ||
* } | ||
* } | ||
* | ||
* const handlerClass = new MyFunctionWithDecorator(); | ||
* const handlerClass = new Lambda(); | ||
* export const handler = handlerClass.handler.bind(handlerClass); | ||
@@ -67,3 +89,3 @@ * ``` | ||
* | ||
* const metrics = new Metrics({ namespace: 'MyService', serviceName: 'MyFunction' }); | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
@@ -147,7 +169,6 @@ * export const handler = async (_event: any, _context: any): Promise<void> => { | ||
* import { Metrics } from '@aws-lambda-powertools/metrics'; | ||
* import { Context } from 'aws-lambda'; | ||
* | ||
* const metrics = new Metrics({ namespace:'serverlessAirline', serviceName:'orders' }); | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
* export const handler = async (event: any, context: Context): Promise<void> => { | ||
* export const handler = async (event: any, _context: any): Promise<void> => { | ||
* metrics.captureColdStartMetric(); | ||
@@ -161,4 +182,4 @@ * }; | ||
const singleMetric = this.singleMetric(); | ||
if (this.dimensions.service) { | ||
singleMetric.addDimension('service', this.dimensions.service); | ||
if (this.defaultDimensions.service) { | ||
singleMetric.setDefaultDimensions({ service: this.defaultDimensions.service }); | ||
} | ||
@@ -189,10 +210,10 @@ if (this.functionName != null) { | ||
* import { Metrics } from '@aws-lambda-powertools/metrics'; | ||
* import { Callback, Context } from 'aws-lambda'; | ||
* import { LambdaInterface } from '@aws-lambda-powertools/commons'; | ||
* | ||
* const metrics = new Metrics({ namespace:'CdkExample', serviceName:'withDecorator' }); | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
* export class MyFunctionWithDecorator { | ||
* class Lambda implements LambdaInterface { | ||
* | ||
* @metrics.logMetrics({ captureColdStartMetric: true }) | ||
* public handler(_event: any, _context: Context, _callback: Callback<any>): void | Promise<any> { | ||
* public handler(_event: any, _context: any): Promise<void> { | ||
* // ... | ||
@@ -202,3 +223,3 @@ * } | ||
* | ||
* const handlerClass = new MyFunctionWithDecorator(); | ||
* const handlerClass = new Lambda(); | ||
* export const handler = handlerClass.handler.bind(handlerClass); | ||
@@ -255,3 +276,3 @@ * ``` | ||
* | ||
* const metrics = new Metrics({ namespace: 'CdkExample', serviceName: 'MyFunction' }); // Sets metric namespace, and service as a metric dimension | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); // Sets metric namespace, and service as a metric dimension | ||
* | ||
@@ -351,7 +372,6 @@ * export const handler = async (_event: any, _context: any): Promise<void> => { | ||
* import { Metrics } from '@aws-lambda-powertools/metrics'; | ||
* import { Context } from 'aws-lambda'; | ||
* | ||
* const metrics = new Metrics({ namespace:'serverlessAirline', serviceName:'orders' }); | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName:'orders' }); | ||
* | ||
* export const handler = async (event: any, context: Context): Promise<void> => { | ||
* export const handler = async (_event: any, _context: any): Promise<void> => { | ||
* metrics.throwOnEmptyMetrics(); | ||
@@ -415,3 +435,3 @@ * metrics.publishStoredMetrics(); // will throw since no metrics added. | ||
if (targetService.length > 0) { | ||
this.addDimension('service', targetService); | ||
this.setDefaultDimensions({ service: targetService }); | ||
} | ||
@@ -440,2 +460,2 @@ } | ||
exports.Metrics = Metrics; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9NZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDREQUF5RDtBQUV6RCxxQ0FBK0U7QUFDL0UsbUNBU2lCO0FBc2RDLDRGQXZkaEIsbUJBQVcsT0F1ZGdCO0FBcGQ3QixNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztBQUM3QixNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDO0FBRTlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThERztBQUNILE1BQU0sT0FBUSxTQUFRLGlCQUFPO0lBWTNCLFlBQW1CLFVBQTBCLEVBQUU7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFYRixzQkFBaUIsR0FBZSxFQUFFLENBQUM7UUFDbkMsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUc1QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxhQUFRLEdBQThCLEVBQUUsQ0FBQztRQUV6Qyw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFDM0Msa0JBQWEsR0FBa0IsRUFBRSxDQUFDO1FBS3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM3QyxJQUFJLG1CQUFtQixJQUFJLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxFQUFFO1lBQzNELE1BQU0sSUFBSSxVQUFVLENBQUMsc0RBQXNELG1CQUFtQixFQUFFLENBQUMsQ0FBQztTQUNuRztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFD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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9NZXRyaWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDREQUF5RDtBQUV6RCxxQ0FBK0U7QUFDL0UsbUNBU2lCO0FBMGVDLDRGQTNlaEIsbUJBQVcsT0EyZWdCO0FBeGU3QixNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztBQUM3QixNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztBQUMvQixNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDO0FBRTlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvRkc7QUFDSCxNQUFNLE9BQVEsU0FBUSxpQkFBTztJQVkzQixZQUFtQixVQUEwQixFQUFFO1FBQzdDLEtBQUssRUFBRSxDQUFDO1FBWEYsc0JBQWlCLEdBQWUsRUFBRSxDQUFDO1FBQ25DLGVBQVUsR0FBZSxFQUFFLENBQUM7UUFHNUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsYUFBUSxHQUE4QixFQUFFLENBQUM7UUFFekMsOEJBQXlCLEdBQVksS0FBSyxDQUFDO1FBQzNDLGtCQUFhLEdBQWtCLEVBQUUsQ0FBQztRQUt4QyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxZQUFZLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDN0MsSUFBSSxtQkFBbUIsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUUsRUFBRTtZQUMzRCxNQUFNLElBQUksVUFBVSxDQUFDLHNEQUFzRCxtQkFBbUIsRUFBRSxDQUFDLENBQUM7U0FDbkc7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNo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 |
import type { Metrics } from '../Metrics'; | ||
import type middy from '@middy/core'; | ||
import type { ExtraOptions } from '../types'; | ||
/** | ||
* A middy middleware automating capture of metadata and annotations on segments or subsegments for a Lambda Handler. | ||
* | ||
* Using this middleware on your handler function will automatically flush metrics after the function returns or throws an error. | ||
* Additionally, you can configure the middleware to easily: | ||
* * ensure that at least one metric is emitted before you flush them | ||
* * capture a `ColdStart` a metric | ||
* * set default dimensions for all your metrics | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Metrics, logMetrics } from '@aws-lambda-powertools/metrics'; | ||
* import middy from '@middy/core'; | ||
* | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
* const lambdaHandler = async (_event: any, _context: any) => { | ||
* ... | ||
* }; | ||
* | ||
* export const handler = middy(lambdaHandler).use(logMetrics(metrics)); | ||
* ``` | ||
* | ||
* @param target - The Metrics instance to use for emitting metrics | ||
* @param options - (_optional_) Options for the middleware | ||
* @returns middleware - The middy middleware object | ||
*/ | ||
declare const logMetrics: (target: Metrics | Metrics[], options?: ExtraOptions) => middy.MiddlewareObj; | ||
export { logMetrics, }; | ||
//# sourceMappingURL=middy.d.ts.map |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.logMetrics = void 0; | ||
/** | ||
* A middy middleware automating capture of metadata and annotations on segments or subsegments for a Lambda Handler. | ||
* | ||
* Using this middleware on your handler function will automatically flush metrics after the function returns or throws an error. | ||
* Additionally, you can configure the middleware to easily: | ||
* * ensure that at least one metric is emitted before you flush them | ||
* * capture a `ColdStart` a metric | ||
* * set default dimensions for all your metrics | ||
* | ||
* @example | ||
* ```typescript | ||
* import { Metrics, logMetrics } from '@aws-lambda-powertools/metrics'; | ||
* import middy from '@middy/core'; | ||
* | ||
* const metrics = new Metrics({ namespace: 'serverlessAirline', serviceName: 'orders' }); | ||
* | ||
* const lambdaHandler = async (_event: any, _context: any) => { | ||
* ... | ||
* }; | ||
* | ||
* export const handler = middy(lambdaHandler).use(logMetrics(metrics)); | ||
* ``` | ||
* | ||
* @param target - The Metrics instance to use for emitting metrics | ||
* @param options - (_optional_) Options for the middleware | ||
* @returns middleware - The middy middleware object | ||
*/ | ||
const logMetrics = (target, options = {}) => { | ||
@@ -33,2 +60,2 @@ const metricsInstances = target instanceof Array ? target : [target]; | ||
exports.logMetrics = logMetrics; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9taWRkeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQTJCLEVBQUUsVUFBd0IsRUFBRSxFQUF1QixFQUFFO0lBQ2xHLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXJFLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLE9BQXNCLEVBQWlCLEVBQUU7UUFDdkUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQzVDLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0RCxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFDbkYsSUFBSSxtQkFBbUIsRUFBRTtnQkFDdkIsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDL0I7WUFDRCxJQUFJLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtnQkFDbkMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDakQ7WUFDRCxJQUFJLHNCQUFzQixFQUFFO2dCQUMxQixPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQyxDQUFDO0lBRUYsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLElBQW1CLEVBQUU7UUFDdkQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQzVDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLE1BQU0sRUFBRSxnQkFBZ0I7UUFDeEIsS0FBSyxFQUFFLHNCQUFzQjtRQUM3QixPQUFPLEVBQUUsc0JBQXNCO0tBQ2hDLENBQUM7QUFDSixDQUFDLENBQUM7QUFHQSxnQ0FBVSJ9 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9taWRkeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFDSCxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQTJCLEVBQUUsVUFBd0IsRUFBRSxFQUF1QixFQUFFO0lBQ2xHLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXJFLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxFQUFFLE9BQXNCLEVBQWlCLEVBQUU7UUFDdkUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQzVDLE9BQU8sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN0RCxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFDbkYsSUFBSSxtQkFBbUIsRUFBRTtnQkFDdkIsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDL0I7WUFDRCxJQUFJLGlCQUFpQixLQUFLLFNBQVMsRUFBRTtnQkFDbkMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDakQ7WUFDRCxJQUFJLHNCQUFzQixFQUFFO2dCQUMxQixPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQyxDQUFDO0lBRUYsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLElBQW1CLEVBQUU7UUFDdkQsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQzVDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLE1BQU0sRUFBRSxnQkFBZ0I7UUFDeEIsS0FBSyxFQUFFLHNCQUFzQjtRQUM3QixPQUFPLEVBQUUsc0JBQXNCO0tBQ2hDLENBQUM7QUFDSixDQUFDLENBQUM7QUFHQSxnQ0FBVSJ9 |
{ | ||
"name": "@aws-lambda-powertools/metrics", | ||
"version": "1.4.0", | ||
"version": "1.4.1", | ||
"description": "The metrics package for the AWS Lambda Powertools for TypeScript library", | ||
@@ -27,6 +27,3 @@ "author": { | ||
"prepare": "npm run build", | ||
"prepublishOnly": "npm test && npm run lint", | ||
"preversion": "npm run lint", | ||
"version": "npm run lint-fix && git add -A src", | ||
"postversion": "git push && git push --tags" | ||
"postversion": "git push --tags" | ||
}, | ||
@@ -53,3 +50,3 @@ "homepage": "https://github.com/awslabs/aws-lambda-powertools-typescript/tree/master/packages/metrics#readme", | ||
"dependencies": { | ||
"@aws-lambda-powertools/commons": "^1.4.0" | ||
"@aws-lambda-powertools/commons": "^1.4.1" | ||
}, | ||
@@ -64,3 +61,3 @@ "keywords": [ | ||
], | ||
"gitHead": "e1cdc4c0d85fd7c15aa05b22611300cd58e3ec1b" | ||
"gitHead": "103a3a19ee0a2089738864ce2a93df1c2eb44791" | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
72873
1076