11import { Duplex , Writable } from "stream" ;
2-
32import { encode } from "@msgpack/msgpack" ;
43import http from "node:http" ;
54import https from "node:https" ;
5+ import zlib from "node:zlib" ;
66
77import { Context , ILogLevel , ILogtailLog , ILogtailNodeOptions , LogLevel , StackContextHint } from "@logtail/types" ;
88import { Base } from "@logtail/core" ;
@@ -27,6 +27,7 @@ export class Node extends Base {
2727 method : "POST" ,
2828 headers : {
2929 "Content-Type" : "application/msgpack" ,
30+ "Content-Encoding" : "gzip" ,
3031 Authorization : `Bearer ${ this . _sourceToken } ` ,
3132 "User-Agent" : "logtail-js(node)" ,
3233 } ,
@@ -36,8 +37,16 @@ export class Node extends Base {
3637 const response : http . IncomingMessage = await new Promise ( ( resolve , reject ) => {
3738 request . on ( "response" , resolve ) ;
3839 request . on ( "error" , reject ) ;
39- request . write ( this . encodeAsMsgpack ( logs ) ) ;
40- request . end ( ) ;
40+
41+ // Compress the logs using gzip
42+ zlib . gzip ( this . encodeAsMsgpack ( logs ) , ( err , compressedData ) => {
43+ if ( err ) {
44+ reject ( err ) ;
45+ return ;
46+ }
47+ request . write ( compressedData ) ;
48+ request . end ( ) ;
49+ } ) ;
4150 } ) ;
4251
4352 if ( response . statusCode && response . statusCode >= 200 && response . statusCode < 300 ) {
0 commit comments