File tree Expand file tree Collapse file tree 3 files changed +46
-1
lines changed
packages/opentelemetry-exporter-prometheus Expand file tree Collapse file tree 3 files changed +46
-1
lines changed Original file line number Diff line number Diff line change @@ -33,13 +33,15 @@ export class PrometheusExporter implements MetricExporter {
3333 port : 9464 ,
3434 endpoint : '/metrics' ,
3535 prefix : '' ,
36+ appendTimestamp : true ,
3637 } ;
3738
3839 private readonly _logger : api . Logger ;
3940 private readonly _port : number ;
4041 private readonly _endpoint : string ;
4142 private readonly _server : Server ;
4243 private readonly _prefix ?: string ;
44+ private readonly _appendTimestamp : boolean ;
4345 private _serializer : PrometheusSerializer ;
4446 private _batcher = new PrometheusLabelsBatcher ( ) ;
4547
@@ -56,8 +58,15 @@ export class PrometheusExporter implements MetricExporter {
5658 this . _logger = config . logger || new NoopLogger ( ) ;
5759 this . _port = config . port || PrometheusExporter . DEFAULT_OPTIONS . port ;
5860 this . _prefix = config . prefix || PrometheusExporter . DEFAULT_OPTIONS . prefix ;
61+ this . _appendTimestamp =
62+ typeof config . appendTimestamp === 'boolean'
63+ ? config . appendTimestamp
64+ : PrometheusExporter . DEFAULT_OPTIONS . appendTimestamp ;
5965 this . _server = createServer ( this . _requestHandler ) ;
60- this . _serializer = new PrometheusSerializer ( this . _prefix ) ;
66+ this . _serializer = new PrometheusSerializer (
67+ this . _prefix ,
68+ this . _appendTimestamp
69+ ) ;
6170
6271 this . _endpoint = (
6372 config . endpoint || PrometheusExporter . DEFAULT_OPTIONS . endpoint
Original file line number Diff line number Diff line change @@ -27,6 +27,12 @@ export interface ExporterConfig {
2727 * */
2828 prefix ?: string ;
2929
30+ /**
31+ * Append timestamp to metrics
32+ * @default true
33+ */
34+ appendTimestamp ?: boolean ;
35+
3036 /**
3137 * Endpoint the metrics should be exposed at with preceding slash
3238 * @default '/metrics'
Original file line number Diff line number Diff line change @@ -660,6 +660,36 @@ describe('PrometheusExporter', () => {
660660 }
661661 ) ;
662662 } ) ;
663+
664+ it ( 'should export a metric without timestamp' , done => {
665+ exporter = new PrometheusExporter (
666+ {
667+ appendTimestamp : false ,
668+ } ,
669+ async ( ) => {
670+ await meter . collect ( ) ;
671+ exporter ! . export ( meter . getProcessor ( ) . checkPointSet ( ) , ( ) => {
672+ http
673+ . get ( 'http://localhost:9464/metrics' , res => {
674+ res . on ( 'data' , chunk => {
675+ const body = chunk . toString ( ) ;
676+ const lines = body . split ( '\n' ) ;
677+
678+ assert . deepStrictEqual ( lines , [
679+ '# HELP counter description missing' ,
680+ '# TYPE counter counter' ,
681+ 'counter{key1="labelValue1"} 10' ,
682+ '' ,
683+ ] ) ;
684+
685+ done ( ) ;
686+ } ) ;
687+ } )
688+ . on ( 'error' , errorHandler ( done ) ) ;
689+ } ) ;
690+ }
691+ ) ;
692+ } ) ;
663693 } ) ;
664694} ) ;
665695
You can’t perform that action at this time.
0 commit comments