claude-flow-novice 1.6.2 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/.claude/settings.json +4 -3
  2. package/.claude-flow-novice/dist/src/api/auth-service.js +84 -38
  3. package/.claude-flow-novice/dist/src/api/auth-service.js.map +1 -1
  4. package/.claude-flow-novice/dist/src/monitoring/apm/apm-integration.js +719 -0
  5. package/.claude-flow-novice/dist/src/monitoring/apm/apm-integration.js.map +1 -0
  6. package/.claude-flow-novice/dist/src/monitoring/apm/datadog-collector.js +363 -0
  7. package/.claude-flow-novice/dist/src/monitoring/apm/datadog-collector.js.map +1 -0
  8. package/.claude-flow-novice/dist/src/monitoring/apm/index.js +97 -0
  9. package/.claude-flow-novice/dist/src/monitoring/apm/index.js.map +1 -0
  10. package/.claude-flow-novice/dist/src/monitoring/apm/newrelic-collector.js +384 -0
  11. package/.claude-flow-novice/dist/src/monitoring/apm/newrelic-collector.js.map +1 -0
  12. package/.claude-flow-novice/dist/src/monitoring/apm/performance-optimizer.js +612 -0
  13. package/.claude-flow-novice/dist/src/monitoring/apm/performance-optimizer.js.map +1 -0
  14. package/.claude-flow-novice/dist/src/monitoring/metrics-collector.js +282 -0
  15. package/.claude-flow-novice/dist/src/monitoring/metrics-collector.js.map +1 -0
  16. package/.claude-flow-novice/dist/src/web/api/apm-routes.js +355 -0
  17. package/.claude-flow-novice/dist/src/web/api/apm-routes.js.map +1 -0
  18. package/.claude-flow-novice/dist/src/web/frontend/src/utils/security.js +425 -0
  19. package/.claude-flow-novice/dist/src/web/frontend/src/utils/security.js.map +1 -0
  20. package/.claude-flow-novice/dist/src/web/security/security-middleware.js +379 -0
  21. package/.claude-flow-novice/dist/src/web/security/security-middleware.js.map +1 -0
  22. package/.claude-flow-novice/dist/src/web/websocket/apm-websocket-handler.js +441 -0
  23. package/.claude-flow-novice/dist/src/web/websocket/apm-websocket-handler.js.map +1 -0
  24. package/.claude-flow-novice/dist/src/web/websocket/websocket-manager.js +255 -1
  25. package/.claude-flow-novice/dist/src/web/websocket/websocket-manager.js.map +1 -1
  26. package/AGENT_PERFORMANCE_GUIDELINES.md +88 -0
  27. package/CLAUDE.md +31 -3
  28. package/MEMORY_LEAK_ROOT_CAUSE.md +149 -0
  29. package/package.json +4 -2
  30. package/scripts/monitor-loop.sh +65 -0
  31. package/scripts/monitor-memory.sh +47 -0
  32. package/scripts/monitor.py +43 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/monitoring/apm/apm-integration.ts"],"names":["Logger","DataDogCollector","NewRelicCollector","DistributedTracer","PerformanceOptimizer","APMIntegration","logger","config","dataDogCollector","newRelicCollector","distributedTracer","performanceOptimizer","customMetricsInterval","healthCheckInterval","distributedTracing","enabled","samplingRate","performanceOptimization","monitoringInterval","customMetrics","interval","alerting","initializeCollectors","startCustomMetrics","startHealthChecks","dataDog","apiKey","info","error","message","newRelic","licenseKey","traceAgentLifecycle","agentType","lifecycleEvent","agentId","metadata","traceContext","traceAgentOperation","undefined","recordAgentLifecycleMetric","setTimeout","finishSpan","tags","count","recordMetric","traceSwarmActivity","swarmId","activity","topology","agentCount","traceSwarmOperation","toString","recordSwarmActivityMetric","recordSwarmActivity","optimizeWebSocketPerformance","operation","socketId","duration","success","traceWebSocketOperation","recordWebSocketEvent","optimizeWebSocketConnections","monitorDatabasePerformance","query","recordSlowQuery","recordDatabaseQuery","table","recordBusinessMetric","metricName","value","type","gauge","histogram","setInterval","collectCustomMetrics","metrics","getCurrentMetrics","memory","heapUsed","heapTotal","cpu","usage","eventLoop","lag","health","getHealthStatus","overall","performHealthCheck","warn","sendHealthAlert","status","components","activeTraces","activeSpans","queuedMetrics","recommendations","errorRate","ddHealth","healthCheck","details","nrHealth","dtHealth","poHealth","componentStatuses","Object","values","includes","toUpperCase","timestamp","Date","toISOString","webhookUrl","url","slackChannel","channel","emailRecipients","length","recipients","getPerformanceAnalytics","analytics","trends","getRecommendations","getTraceStatistics","runIntegrationTest","startTime","now","results","testDataDogIntegration","testNewRelicIntegration","testDistributedTracing","testPerformanceOptimizer","every","r","runDisasterRecoveryTest","scenarios","dataDogOutage","testDataDogOutage","newRelicOutage","testNewRelicOutage","highLoad","testHighLoadScenario","memoryStress","testMemoryStressScenario","s","originalApiKey","test","metricCount","i","iteration","traceCount","memoryUsagePercent","getCollectors","shutdown","clearInterval","shutdownPromises","push","cleanup","Promise","all","createAPMIntegration"],"mappings":"AAAA;;;CAGC,GAED,SAASA,MAAM,QAAQ,wBAAwB;AAC/C,SAASC,gBAAgB,QAAuB,yBAAyB;AACzE,SAASC,iBAAiB,QAAwB,0BAA0B;AAC5E,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,oBAAoB,QAAQ,6BAA6B;AA0ClE,OAAO,MAAMC;IACHC,OAAe;IACfC,OAA6B;IAC7BC,iBAAoC;IACpCC,kBAAsC;IACtCC,kBAAsC;IACtCC,qBAA4C;IAC5CC,sBAAuC;IACvCC,oBAAqC;IAE7C,YAAYN,SAA+B,CAAC,CAAC,CAAE;QAC7C,IAAI,CAACD,MAAM,GAAG,IAAIN,OAAO;QACzB,IAAI,CAACO,MAAM,GAAG;YACZO,oBAAoB;gBAClBC,SAAS;gBACTC,cAAc;YAChB;YACAC,yBAAyB;gBACvBF,SAAS;gBACTG,oBAAoB;YACtB;YACAC,eAAe;gBACbJ,SAAS;gBACTK,UAAU;YACZ;YACAC,UAAU;gBACRN,SAAS;YACX;YACA,GAAGR,MAAM;QACX;QAEA,IAAI,CAACe,oBAAoB;QACzB,IAAI,CAACC,kBAAkB;QACvB,IAAI,CAACC,iBAAiB;IACxB;IAEQF,uBAA6B;QACnC,mCAAmC;QACnC,IAAI,IAAI,CAACf,MAAM,CAACkB,OAAO,EAAEV,YAAY,SAAS,IAAI,CAACR,MAAM,CAACkB,OAAO,EAAEC,QAAQ;YACzE,IAAI;gBACF,IAAI,CAAClB,gBAAgB,GAAG,IAAIP,iBAAiB,IAAI,CAACM,MAAM,CAACkB,OAAO;gBAChE,IAAI,CAACnB,MAAM,CAACqB,IAAI,CAAC;YACnB,EAAE,OAAOC,OAAO;gBACd,IAAI,CAACtB,MAAM,CAACsB,KAAK,CAAC,0CAA0C;oBAAEA,OAAOA,MAAMC,OAAO;gBAAC;YACrF;QACF;QAEA,qCAAqC;QACrC,IAAI,IAAI,CAACtB,MAAM,CAACuB,QAAQ,EAAEf,YAAY,SAAS,IAAI,CAACR,MAAM,CAACuB,QAAQ,EAAEC,YAAY;YAC/E,IAAI;gBACF,IAAI,CAACtB,iBAAiB,GAAG,IAAIP,kBAAkB,IAAI,CAACK,MAAM,CAACuB,QAAQ;gBACnE,IAAI,CAACxB,MAAM,CAACqB,IAAI,CAAC;YACnB,EAAE,OAAOC,OAAO;gBACd,IAAI,CAACtB,MAAM,CAACsB,KAAK,CAAC,4CAA4C;oBAAEA,OAAOA,MAAMC,OAAO;gBAAC;YACvF;QACF;QAEA,iCAAiC;QACjC,IAAI,IAAI,CAACtB,MAAM,CAACO,kBAAkB,EAAEC,YAAY,OAAO;YACrD,IAAI;gBACF,IAAI,CAACL,iBAAiB,GAAG,IAAIP,kBAC3B,IAAI,CAACK,gBAAgB,EACrB,IAAI,CAACC,iBAAiB,EACtB;oBACEO,cAAc,IAAI,CAACT,MAAM,CAACO,kBAAkB,CAACE,YAAY;gBAC3D;gBAEF,IAAI,CAACV,MAAM,CAACqB,IAAI,CAAC;YACnB,EAAE,OAAOC,OAAO;gBACd,IAAI,CAACtB,MAAM,CAACsB,KAAK,CAAC,4CAA4C;oBAAEA,OAAOA,MAAMC,OAAO;gBAAC;YACvF;QACF;QAEA,mCAAmC;QACnC,IAAI,IAAI,CAACtB,MAAM,CAACU,uBAAuB,EAAEF,YAAY,OAAO;YAC1D,IAAI;gBACF,IAAI,CAACJ,oBAAoB,GAAG,IAAIP,qBAC9B,IAAI,CAACI,gBAAgB,EACrB,IAAI,CAACC,iBAAiB;gBAExB,IAAI,CAACH,MAAM,CAACqB,IAAI,CAAC;YACnB,EAAE,OAAOC,OAAO;gBACd,IAAI,CAACtB,MAAM,CAACsB,KAAK,CAAC,8CAA8C;oBAAEA,OAAOA,MAAMC,OAAO;gBAAC;YACzF;QACF;IACF;IAEA,0BAA0B;IACnBG,oBACLC,SAAiB,EACjBC,cAAqF,EACrFC,OAAgB,EAChBC,QAA8B,EACxB;QACN,IAAI,CAAC,IAAI,CAAC1B,iBAAiB,EAAE;QAE7B,MAAM2B,eAAe,IAAI,CAAC3B,iBAAiB,CAAC4B,mBAAmB,CAC7DL,WACAC,gBACAK,WACA;YACE,YAAYJ,WAAW;YACvB,mBAAmBD;YACnB,GAAGE,QAAQ;QACb;QAGF,iBAAiB;QACjB,IAAI,CAACI,0BAA0B,CAACP,WAAWC,gBAAgBE;QAE3D,cAAc;QACdK,WAAW;YACT,IAAI,CAAC/B,iBAAiB,CAAEgC,UAAU,CAACL,cAAc;gBAC/C,cAAcJ;gBACd,mBAAmBC;YACrB;QACF,GAAG;IACL;IAEQM,2BACNP,SAAiB,EACjBC,cAAsB,EACtBE,QAA8B,EACxB;QACN,MAAMO,OAAO;YACX,cAAcV;YACd,mBAAmBC;YACnB,GAAGE,QAAQ;QACb;QAEA,IAAI,IAAI,CAAC5B,gBAAgB,EAAE;YACzB,IAAI,CAACA,gBAAgB,CAACoC,KAAK,CAAC,0BAA0B,GAAGD;QAC3D;QAEA,IAAI,IAAI,CAAClC,iBAAiB,EAAE;YAC1B,IAAI,CAACA,iBAAiB,CAACoC,YAAY,CAAC,uBAAuB,GAAG,SAASF;QACzE;IACF;IAEA,4BAA4B;IACrBG,mBACLC,OAAe,EACfC,QAAsE,EACtEC,QAAgB,EAChBC,UAAkB,EAClBd,QAA8B,EACxB;QACN,IAAI,CAAC,IAAI,CAAC1B,iBAAiB,EAAE;QAE7B,MAAM2B,eAAe,IAAI,CAAC3B,iBAAiB,CAACyC,mBAAmB,CAC7DJ,SACAC,UACAC,UACAV,WACA;YACE,qBAAqBW,WAAWE,QAAQ;YACxC,kBAAkBJ;YAClB,GAAGZ,QAAQ;QACb;QAGF,iBAAiB;QACjB,IAAI,CAACiB,yBAAyB,CAACN,SAASC,UAAUC,UAAUC,YAAYd;QAExE,cAAc;QACdK,WAAW;YACT,IAAI,CAAC/B,iBAAiB,CAAEgC,UAAU,CAACL,cAAc;gBAC/C,YAAYU;gBACZ,kBAAkBC;YACpB;QACF,GAAG;IACL;IAEQK,0BACNN,OAAe,EACfC,QAAgB,EAChBC,QAAgB,EAChBC,UAAkB,EAClBd,QAA8B,EACxB;QACN,MAAMO,OAAO;YACX,YAAYI;YACZ,kBAAkBC;YAClB,kBAAkBC;YAClB,qBAAqBC,WAAWE,QAAQ;YACxC,GAAGhB,QAAQ;QACb;QAEA,IAAI,IAAI,CAAC5B,gBAAgB,EAAE;YACzB,IAAI,CAACA,gBAAgB,CAAC8C,mBAAmB,CAACJ,YAAYD,UAAU,MAAM;YACtE,IAAI,CAACzC,gBAAgB,CAACoC,KAAK,CAAC,kBAAkB,GAAGD;QACnD;QAEA,IAAI,IAAI,CAAClC,iBAAiB,EAAE;YAC1B,IAAI,CAACA,iBAAiB,CAAC6C,mBAAmB,CAACJ,YAAYD,UAAU,MAAM;YACvE,IAAI,CAACxC,iBAAiB,CAACoC,YAAY,CAAC,iBAAiB,GAAG,SAASF;QACnE;IACF;IAEA,qCAAqC;IAC9BY,6BACLC,SAAmE,EACnEC,QAAgB,EAChBC,QAAiB,EACjBC,UAAmB,IAAI,EACvBvB,QAA8B,EACxB;QACN,IAAI,IAAI,CAAC1B,iBAAiB,EAAE;YAC1B,MAAM2B,eAAe,IAAI,CAAC3B,iBAAiB,CAACkD,uBAAuB,CACjEJ,WACAC,UACAlB,WACAH;YAGF,IAAIsB,UAAU;gBACZjB,WAAW;oBACT,IAAI,CAAC/B,iBAAiB,CAAEgC,UAAU,CAACL,cAAc;wBAC/C,uBAAuBmB;wBACvB,qBAAqBG,QAAQP,QAAQ;oBACvC;gBACF,GAAG;YACL;QACF;QAEA,iBAAiB;QACjB,IAAIM,YAAY,IAAI,CAAClD,gBAAgB,EAAE;YACrC,IAAI,CAACA,gBAAgB,CAACqD,oBAAoB,CAACL,WAAWE,UAAUC;QAClE;QAEA,IAAID,YAAY,IAAI,CAACjD,iBAAiB,EAAE;YACtC,IAAI,CAACA,iBAAiB,CAACoD,oBAAoB,CAACL,WAAWE,UAAUC;QACnE;QAEA,sCAAsC;QACtC,IAAI,IAAI,CAAChD,oBAAoB,IAAI6C,cAAc,cAAc;YAC3D,sCAAsC;YACtC,IAAI,CAAC7C,oBAAoB,CAACmD,4BAA4B,CAAC,MAAM,oBAAoB;QACnF;IACF;IAEA,kCAAkC;IAC3BC,2BACLP,SAAiD,EACjDQ,KAAc,EACdN,QAAiB,EACjBC,UAAmB,IAAI,EACvBvB,QAA8B,EACxB;QACN,sBAAsB;QACtB,IAAI4B,SAASN,YAAYA,WAAW,MAAM;YACxC,IAAI,CAAC/C,oBAAoB,EAAEsD,gBAAgBD,OAAON;QACpD;QAEA,iBAAiB;QACjB,IAAI,IAAI,CAAClD,gBAAgB,IAAIkD,UAAU;YACrC,IAAI,CAAClD,gBAAgB,CAAC0D,mBAAmB,CACvCV,WACApB,UAAU+B,SAAS,WACnBT,UACAC;QAEJ;QAEA,IAAI,IAAI,CAAClD,iBAAiB,IAAIiD,UAAU;YACtC,IAAI,CAACjD,iBAAiB,CAACoC,YAAY,CAAC,qBAAqBa,UAAU,aAAa;gBAC9E,kBAAkBF;gBAClB,mBAAmBpB,UAAU+B,SAAS;gBACtC,oBAAoBR,UAAU,YAAY;YAC5C;QACF;IACF;IAEA,0BAA0B;IACnBS,qBACLC,UAAkB,EAClBC,KAAa,EACb3B,IAA6B,EAC7B4B,OAAwC,OAAO,EACzC;QACN,IAAI,IAAI,CAAC/D,gBAAgB,EAAE;YACzB,OAAQ+D;gBACN,KAAK;oBACH,IAAI,CAAC/D,gBAAgB,CAACoC,KAAK,CAACyB,YAAYC,OAAO3B;oBAC/C;gBACF,KAAK;oBACH,IAAI,CAACnC,gBAAgB,CAACgE,KAAK,CAACH,YAAYC,OAAO3B;oBAC/C;gBACF,KAAK;oBACH,IAAI,CAACnC,gBAAgB,CAACiE,SAAS,CAACJ,YAAYC,OAAO3B;oBACnD;YACJ;QACF;QAEA,IAAI,IAAI,CAAClC,iBAAiB,EAAE;YAC1B,IAAI,CAACA,iBAAiB,CAACoC,YAAY,CAACwB,YAAYC,OAAOC,MAAM5B;QAC/D;IACF;IAEA,4BAA4B;IACpBpB,qBAA2B;QACjC,IAAI,CAAC,IAAI,CAAChB,MAAM,CAACY,aAAa,EAAEJ,SAAS;QAEzC,IAAI,CAACH,qBAAqB,GAAG8D,YAAY;YACvC,IAAI,CAACC,oBAAoB;QAC3B,GAAG,IAAI,CAACpE,MAAM,CAACY,aAAa,CAACC,QAAQ;IACvC;IAEQuD,uBAA6B;QACnC,IAAI;YACF,wBAAwB;YACxB,IAAI,CAACP,oBAAoB,CAAC,iBAAiB,GAAG;gBAAEG,MAAM;YAAQ;YAC9D,IAAI,CAACH,oBAAoB,CAAC,uBAAuB,MAAM;gBAAEG,MAAM;YAAa;YAE5E,wBAAwB;YACxB,IAAI,CAACH,oBAAoB,CAAC,iBAAiB,GAAG;gBAAEG,MAAM;YAAQ;YAC9D,IAAI,CAACH,oBAAoB,CAAC,yBAAyB,MAAM;gBAAEG,MAAM;YAAa;YAE9E,sBAAsB;YACtB,IAAI,IAAI,CAAC5D,oBAAoB,EAAE;gBAC7B,MAAMiE,UAAU,IAAI,CAACjE,oBAAoB,CAACkE,iBAAiB;gBAC3D,IAAI,CAACT,oBAAoB,CAAC,oCACxB,AAACQ,QAAQE,MAAM,CAACC,QAAQ,GAAGH,QAAQE,MAAM,CAACE,SAAS,GAAI;gBACzD,IAAI,CAACZ,oBAAoB,CAAC,yBAAyBQ,QAAQK,GAAG,CAACC,KAAK;gBACpE,IAAI,CAACd,oBAAoB,CAAC,8BAA8BQ,QAAQO,SAAS,CAACC,GAAG;YAC/E;YAEA,wBAAwB;YACxB,MAAMC,SAAS,IAAI,CAACC,eAAe;YACnC,IAAI,CAAClB,oBAAoB,CAAC,uBACxBiB,OAAOE,OAAO,KAAK,YAAY,MAAMF,OAAOE,OAAO,KAAK,aAAa,KAAK;QAE9E,EAAE,OAAO3D,OAAO;YACd,IAAI,CAACtB,MAAM,CAACsB,KAAK,CAAC,mCAAmC;gBAAEA,OAAOA,MAAMC,OAAO;YAAC;QAC9E;IACF;IAEA,oBAAoB;IACZL,oBAA0B;QAChC,IAAI,CAACX,mBAAmB,GAAG6D,YAAY;YACrC,MAAM,IAAI,CAACc,kBAAkB;QAC/B,GAAG,QAAQ,gCAAgC;IAC7C;IAEA,MAAcA,qBAAoC;QAChD,IAAI;YACF,MAAMH,SAAS,MAAM,IAAI,CAACC,eAAe;YAEzC,oBAAoB;YACpB,IAAID,OAAOE,OAAO,KAAK,WAAW;gBAChC,IAAI,CAACjF,MAAM,CAACmF,IAAI,CAAC,yCAAyCJ;gBAE1D,2BAA2B;gBAC3B,IAAI,IAAI,CAAC9E,MAAM,CAACc,QAAQ,EAAEN,SAAS;oBACjC,MAAM,IAAI,CAAC2E,eAAe,CAACL;gBAC7B;YACF;YAEA,wBAAwB;YACxB,IAAI,CAACjB,oBAAoB,CAAC,qBACxBiB,OAAOE,OAAO,KAAK,YAAY,IAAI,GACnC;gBAAEI,QAAQN,OAAOE,OAAO;YAAC;QAE7B,EAAE,OAAO3D,OAAO;YACd,IAAI,CAACtB,MAAM,CAACsB,KAAK,CAAC,6BAA6B;gBAAEA,OAAOA,MAAMC,OAAO;YAAC;QACxE;IACF;IAEA,MAAayD,kBAA4C;QACvD,MAAMD,SAA0B;YAC9BE,SAAS;YACTK,YAAY;gBACVnE,SAAS;gBACTK,UAAU;gBACVhB,oBAAoB;gBACpBH,sBAAsB;YACxB;YACAiE,SAAS;gBACPiB,cAAc;gBACdC,aAAa;gBACbC,eAAe;gBACfC,iBAAiB;gBACjBC,WAAW;YACb;QACF;QAEA,uBAAuB;QACvB,IAAI,IAAI,CAACzF,gBAAgB,EAAE;YACzB,IAAI;gBACF,MAAM0F,WAAW,MAAM,IAAI,CAAC1F,gBAAgB,CAAC2F,WAAW;gBACxDd,OAAOO,UAAU,CAACnE,OAAO,GAAGyE,SAASP,MAAM;gBAC3CN,OAAOT,OAAO,CAACmB,aAAa,IAAIG,SAASE,OAAO,CAACL,aAAa;YAChE,EAAE,OAAOnE,OAAO;gBACdyD,OAAOO,UAAU,CAACnE,OAAO,GAAG;YAC9B;QACF;QAEA,yBAAyB;QACzB,IAAI,IAAI,CAAChB,iBAAiB,EAAE;YAC1B,IAAI;gBACF,MAAM4F,WAAW,MAAM,IAAI,CAAC5F,iBAAiB,CAAC0F,WAAW;gBACzDd,OAAOO,UAAU,CAAC9D,QAAQ,GAAGuE,SAASV,MAAM;gBAC5CN,OAAOT,OAAO,CAACmB,aAAa,IAAIM,SAASD,OAAO,CAACL,aAAa;YAChE,EAAE,OAAOnE,OAAO;gBACdyD,OAAOO,UAAU,CAAC9D,QAAQ,GAAG;YAC/B;QACF;QAEA,mCAAmC;QACnC,IAAI,IAAI,CAACpB,iBAAiB,EAAE;YAC1B,IAAI;gBACF,MAAM4F,WAAW,IAAI,CAAC5F,iBAAiB,CAACyF,WAAW;gBACnDd,OAAOO,UAAU,CAAC9E,kBAAkB,GAAGwF,SAASX,MAAM;gBACtDN,OAAOT,OAAO,CAACiB,YAAY,GAAGS,SAASF,OAAO,CAACP,YAAY;gBAC3DR,OAAOT,OAAO,CAACkB,WAAW,GAAGQ,SAASF,OAAO,CAACN,WAAW;gBACzDT,OAAOT,OAAO,CAACqB,SAAS,GAAGK,SAASF,OAAO,CAACH,SAAS;YACvD,EAAE,OAAOrE,OAAO;gBACdyD,OAAOO,UAAU,CAAC9E,kBAAkB,GAAG;YACzC;QACF;QAEA,qCAAqC;QACrC,IAAI,IAAI,CAACH,oBAAoB,EAAE;YAC7B,IAAI;gBACF,MAAM4F,WAAW,IAAI,CAAC5F,oBAAoB,CAACwF,WAAW;gBACtDd,OAAOO,UAAU,CAACjF,oBAAoB,GAAG4F,SAASZ,MAAM;gBACxDN,OAAOT,OAAO,CAACoB,eAAe,GAAGO,SAASH,OAAO,CAACJ,eAAe;YACnE,EAAE,OAAOpE,OAAO;gBACdyD,OAAOO,UAAU,CAACjF,oBAAoB,GAAG;YAC3C;QACF;QAEA,2BAA2B;QAC3B,MAAM6F,oBAAoBC,OAAOC,MAAM,CAACrB,OAAOO,UAAU;QACzD,IAAIY,kBAAkBG,QAAQ,CAAC,cAAc;YAC3CtB,OAAOE,OAAO,GAAG;QACnB,OAAO,IAAIiB,kBAAkBG,QAAQ,CAAC,aAAa;YACjDtB,OAAOE,OAAO,GAAG;QACnB;QAEA,OAAOF;IACT;IAEA,MAAcK,gBAAgBL,MAAuB,EAAiB;QACpE,IAAI,CAAC,IAAI,CAAC9E,MAAM,CAACc,QAAQ,EAAEN,SAAS;QAEpC,MAAMc,UAAU,CAAC,8BAA8B,EAAEwD,OAAOE,OAAO,CAACqB,WAAW,IAAI;QAC/E,MAAMR,UAAU;YACdR,YAAYP,OAAOO,UAAU;YAC7BhB,SAASS,OAAOT,OAAO;YACvBiC,WAAW,IAAIC,OAAOC,WAAW;QACnC;QAEA,kBAAkB;QAClB,IAAI,IAAI,CAACxG,MAAM,CAACc,QAAQ,CAAC2F,UAAU,EAAE;YACnC,IAAI;gBACF,4BAA4B;gBAC5B,IAAI,CAAC1G,MAAM,CAACqB,IAAI,CAAC,sCAAsC;oBACrDsF,KAAK,IAAI,CAAC1G,MAAM,CAACc,QAAQ,CAAC2F,UAAU;oBACpCnF;oBACAuE;gBACF;YACF,EAAE,OAAOxE,OAAO;gBACd,IAAI,CAACtB,MAAM,CAACsB,KAAK,CAAC,gCAAgC;oBAAEA,OAAOA,MAAMC,OAAO;gBAAC;YAC3E;QACF;QAEA,gBAAgB;QAChB,IAAI,IAAI,CAACtB,MAAM,CAACc,QAAQ,CAAC6F,YAAY,EAAE;YACrC,IAAI;gBACF,0BAA0B;gBAC1B,IAAI,CAAC5G,MAAM,CAACqB,IAAI,CAAC,oCAAoC;oBACnDwF,SAAS,IAAI,CAAC5G,MAAM,CAACc,QAAQ,CAAC6F,YAAY;oBAC1CrF;oBACAuE;gBACF;YACF,EAAE,OAAOxE,OAAO;gBACd,IAAI,CAACtB,MAAM,CAACsB,KAAK,CAAC,8BAA8B;oBAAEA,OAAOA,MAAMC,OAAO;gBAAC;YACzE;QACF;QAEA,aAAa;QACb,IAAI,IAAI,CAACtB,MAAM,CAACc,QAAQ,CAAC+F,eAAe,EAAEC,SAAS,GAAG;YACpD,IAAI;gBACF,0BAA0B;gBAC1B,IAAI,CAAC/G,MAAM,CAACqB,IAAI,CAAC,qCAAqC;oBACpD2F,YAAY,IAAI,CAAC/G,MAAM,CAACc,QAAQ,CAAC+F,eAAe;oBAChDvF;oBACAuE;gBACF;YACF,EAAE,OAAOxE,OAAO;gBACd,IAAI,CAACtB,MAAM,CAACsB,KAAK,CAAC,8BAA8B;oBAAEA,OAAOA,MAAMC,OAAO;gBAAC;YACzE;QACF;IACF;IAEA,wBAAwB;IACjB0F,0BAIL;QACA,MAAMC,YAAY;YAChB5C,SAAS,CAAC;YACVoB,iBAAiB,EAAE;YACnByB,QAAQ,CAAC;QACX;QAEA,sBAAsB;QACtB,IAAI,IAAI,CAAC9G,oBAAoB,EAAE;YAC7B6G,UAAU5C,OAAO,GAAG,IAAI,CAACjE,oBAAoB,CAACkE,iBAAiB;YAC/D2C,UAAUxB,eAAe,GAAG,IAAI,CAACrF,oBAAoB,CAAC+G,kBAAkB;QAC1E;QAEA,uBAAuB;QACvB,IAAI,IAAI,CAAChH,iBAAiB,EAAE;YAC1B8G,UAAUC,MAAM,GAAG,IAAI,CAAC/G,iBAAiB,CAACiH,kBAAkB;QAC9D;QAEA,OAAOH;IACT;IAEA,8BAA8B;IAC9B,MAAaI,qBAIV;QACD,MAAMC,YAAYf,KAAKgB,GAAG;QAC1B,MAAMC,UAA+B,CAAC;QAEtC,IAAI;YACF,2BAA2B;YAC3B,IAAI,IAAI,CAACvH,gBAAgB,EAAE;gBACzBuH,QAAQtG,OAAO,GAAG,MAAM,IAAI,CAACuG,sBAAsB;YACrD;YAEA,6BAA6B;YAC7B,IAAI,IAAI,CAACvH,iBAAiB,EAAE;gBAC1BsH,QAAQjG,QAAQ,GAAG,MAAM,IAAI,CAACmG,uBAAuB;YACvD;YAEA,2BAA2B;YAC3B,IAAI,IAAI,CAACvH,iBAAiB,EAAE;gBAC1BqH,QAAQjH,kBAAkB,GAAG,MAAM,IAAI,CAACoH,sBAAsB;YAChE;YAEA,gCAAgC;YAChC,IAAI,IAAI,CAACvH,oBAAoB,EAAE;gBAC7BoH,QAAQpH,oBAAoB,GAAG,MAAM,IAAI,CAACwH,wBAAwB;YACpE;YAEA,MAAMzE,WAAWoD,KAAKgB,GAAG,KAAKD;YAC9B,MAAMlC,SAASc,OAAOC,MAAM,CAACqB,SAASK,KAAK,CAACC,CAAAA,IAAKA,EAAE1C,MAAM,KAAK,YAAY,WAAW;YAErF,OAAO;gBAAEA;gBAAQoC;gBAASrE;YAAS;QAErC,EAAE,OAAO9B,OAAO;YACd,MAAM8B,WAAWoD,KAAKgB,GAAG,KAAKD;YAC9B,OAAO;gBACLlC,QAAQ;gBACRoC,SAAS;oBAAEnG,OAAOA,MAAMC,OAAO;gBAAC;gBAChC6B;YACF;QACF;IACF;IAEA,MAAcsE,yBAAoE;QAChF,IAAI;YACF,MAAM3C,SAAS,MAAM,IAAI,CAAC7E,gBAAgB,CAAE2F,WAAW;YACvD,OAAO;gBACLR,QAAQN,OAAOM,MAAM,KAAK,YAAY,WAAW;gBACjDS,SAASf;YACX;QACF,EAAE,OAAOzD,OAAO;YACd,OAAO;gBACL+D,QAAQ;gBACRS,SAAS;oBAAExE,OAAOA,MAAMC,OAAO;gBAAC;YAClC;QACF;IACF;IAEA,MAAcoG,0BAAqE;QACjF,IAAI;YACF,MAAM5C,SAAS,MAAM,IAAI,CAAC5E,iBAAiB,CAAE0F,WAAW;YACxD,OAAO;gBACLR,QAAQN,OAAOM,MAAM,KAAK,YAAY,WAAW;gBACjDS,SAASf;YACX;QACF,EAAE,OAAOzD,OAAO;YACd,OAAO;gBACL+D,QAAQ;gBACRS,SAAS;oBAAExE,OAAOA,MAAMC,OAAO;gBAAC;YAClC;QACF;IACF;IAEA,MAAcqG,yBAAoE;QAChF,IAAI;YACF,MAAM7C,SAAS,IAAI,CAAC3E,iBAAiB,CAAEyF,WAAW;YAClD,OAAO;gBACLR,QAAQN,OAAOM,MAAM,KAAK,YAAY,WAAW;gBACjDS,SAASf;YACX;QACF,EAAE,OAAOzD,OAAO;YACd,OAAO;gBACL+D,QAAQ;gBACRS,SAAS;oBAAExE,OAAOA,MAAMC,OAAO;gBAAC;YAClC;QACF;IACF;IAEA,MAAcsG,2BAAsE;QAClF,IAAI;YACF,MAAM9C,SAAS,IAAI,CAAC1E,oBAAoB,CAAEwF,WAAW;YACrD,OAAO;gBACLR,QAAQN,OAAOM,MAAM,KAAK,YAAY,WAAW;gBACjDS,SAASf;YACX;QACF,EAAE,OAAOzD,OAAO;YACd,OAAO;gBACL+D,QAAQ;gBACRS,SAAS;oBAAExE,OAAOA,MAAMC,OAAO;gBAAC;YAClC;QACF;IACF;IAEA,4BAA4B;IAC5B,MAAayG,0BAIV;QACD,MAAMT,YAAYf,KAAKgB,GAAG;QAC1B,MAAMS,YAAiC,CAAC;QAExC,IAAI;YACF,sBAAsB;YACtB,IAAI,IAAI,CAAC/H,gBAAgB,EAAE;gBACzB+H,UAAUC,aAAa,GAAG,MAAM,IAAI,CAACC,iBAAiB;YACxD;YAEA,wBAAwB;YACxB,IAAI,IAAI,CAAChI,iBAAiB,EAAE;gBAC1B8H,UAAUG,cAAc,GAAG,MAAM,IAAI,CAACC,kBAAkB;YAC1D;YAEA,0BAA0B;YAC1BJ,UAAUK,QAAQ,GAAG,MAAM,IAAI,CAACC,oBAAoB;YAEpD,qBAAqB;YACrBN,UAAUO,YAAY,GAAG,MAAM,IAAI,CAACC,wBAAwB;YAE5D,MAAMrF,WAAWoD,KAAKgB,GAAG,KAAKD;YAC9B,MAAMlC,SAASc,OAAOC,MAAM,CAAC6B,WAAWH,KAAK,CAAC,CAACY,IAAWA,EAAErD,MAAM,KAAK,YAAY,WAAW;YAE9F,OAAO;gBAAEA;gBAAQ4C;gBAAW7E;YAAS;QAEvC,EAAE,OAAO9B,OAAO;YACd,MAAM8B,WAAWoD,KAAKgB,GAAG,KAAKD;YAC9B,OAAO;gBACLlC,QAAQ;gBACR4C,WAAW;oBAAE3G,OAAOA,MAAMC,OAAO;gBAAC;gBAClC6B;YACF;QACF;IACF;IAEA,MAAc+E,oBAA+D;QAC3E,IAAI;YACF,mDAAmD;YACnD,MAAMQ,iBAAkB,IAAI,CAAC1I,MAAM,CAACkB,OAAO,EAAoBC;YAC/D,IAAIuH,gBAAgB;gBACjB,IAAI,CAAC1I,MAAM,CAACkB,OAAO,CAAmBC,MAAM,GAAGa;gBAEhD,wDAAwD;gBACxD,IAAI,CAAC6B,oBAAoB,CAAC,eAAe,GAAG;oBAAE8E,MAAM;gBAAS;gBAE7D,kBAAkB;gBACjB,IAAI,CAAC3I,MAAM,CAACkB,OAAO,CAAmBC,MAAM,GAAGuH;gBAEhD,OAAO;oBACLtD,QAAQ;oBACRS,SAAS;wBAAEvE,SAAS;oBAAoC;gBAC1D;YACF;YAEA,OAAO;gBACL8D,QAAQ;gBACRS,SAAS;oBAAEvE,SAAS;gBAAyB;YAC/C;QAEF,EAAE,OAAOD,OAAO;YACd,OAAO;gBACL+D,QAAQ;gBACRS,SAAS;oBAAExE,OAAOA,MAAMC,OAAO;gBAAC;YAClC;QACF;IACF;IAEA,MAAc8G,qBAAgE;QAC5E,IAAI;YACF,iCAAiC;YACjC,OAAO;gBACLhD,QAAQ;gBACRS,SAAS;oBAAEvE,SAAS;gBAAsC;YAC5D;QACF,EAAE,OAAOD,OAAO;YACd,OAAO;gBACL+D,QAAQ;gBACRS,SAAS;oBAAExE,OAAOA,MAAMC,OAAO;gBAAC;YAClC;QACF;IACF;IAEA,MAAcgH,uBAAkE;QAC9E,IAAI;YACF,6CAA6C;YAC7C,MAAMhB,YAAYf,KAAKgB,GAAG;YAC1B,MAAMqB,cAAc;YAEpB,IAAK,IAAIC,IAAI,GAAGA,IAAID,aAAaC,IAAK;gBACpC,IAAI,CAAChF,oBAAoB,CAAC,aAAagF,GAAG;oBAAEC,WAAWD,EAAEhG,QAAQ;gBAAG;YACtE;YAEA,MAAMM,WAAWoD,KAAKgB,GAAG,KAAKD;YAE9B,OAAO;gBACLlC,QAAQjC,WAAW,OAAO,WAAW;gBACrC0C,SAAS;oBAAE+C;oBAAazF;gBAAS;YACnC;QAEF,EAAE,OAAO9B,OAAO;YACd,OAAO;gBACL+D,QAAQ;gBACRS,SAAS;oBAAExE,OAAOA,MAAMC,OAAO;gBAAC;YAClC;QACF;IACF;IAEA,MAAckH,2BAAsE;QAClF,IAAI;YACF,0CAA0C;YAC1C,MAAMO,aAAa;YAEnB,IAAK,IAAIF,IAAI,GAAGA,IAAIE,YAAYF,IAAK;gBACnC,IAAI,CAACpH,mBAAmB,CAAC,cAAc,WAAW,CAAC,MAAM,EAAEoH,GAAG,EAAE;oBAAEF,MAAM;gBAAgB;YAC1F;YAEA,qBAAqB;YACrB,IAAI,IAAI,CAACvI,oBAAoB,EAAE;gBAC7B,MAAMiE,UAAU,IAAI,CAACjE,oBAAoB,CAACkE,iBAAiB;gBAC3D,MAAM0E,qBAAqB,AAAC3E,QAAQE,MAAM,CAACC,QAAQ,GAAGH,QAAQE,MAAM,CAACE,SAAS,GAAI;gBAElF,OAAO;oBACLW,QAAQ4D,qBAAqB,KAAK,WAAW;oBAC7CnD,SAAS;wBAAEkD;wBAAYC;oBAAmB;gBAC5C;YACF;YAEA,OAAO;gBACL5D,QAAQ;gBACRS,SAAS;oBAAEvE,SAAS;gBAAsC;YAC5D;QAEF,EAAE,OAAOD,OAAO;YACd,OAAO;gBACL+D,QAAQ;gBACRS,SAAS;oBAAExE,OAAOA,MAAMC,OAAO;gBAAC;YAClC;QACF;IACF;IAEA,qBAAqB;IACd2H,gBAKL;QACA,OAAO;YACL/H,SAAS,IAAI,CAACjB,gBAAgB;YAC9BsB,UAAU,IAAI,CAACrB,iBAAiB;YAChCC,mBAAmB,IAAI,CAACA,iBAAiB;YACzCC,sBAAsB,IAAI,CAACA,oBAAoB;QACjD;IACF;IAEA,WAAW;IACX,MAAa8I,WAA0B;QACrC,IAAI,CAACnJ,MAAM,CAACqB,IAAI,CAAC;QAEjB,kBAAkB;QAClB,IAAI,IAAI,CAACf,qBAAqB,EAAE;YAC9B8I,cAAc,IAAI,CAAC9I,qBAAqB;QAC1C;QAEA,IAAI,IAAI,CAACC,mBAAmB,EAAE;YAC5B6I,cAAc,IAAI,CAAC7I,mBAAmB;QACxC;QAEA,sBAAsB;QACtB,MAAM8I,mBAAoC,EAAE;QAE5C,IAAI,IAAI,CAACnJ,gBAAgB,EAAE;YACzBmJ,iBAAiBC,IAAI,CAAC,IAAI,CAACpJ,gBAAgB,CAACiJ,QAAQ;QACtD;QAEA,IAAI,IAAI,CAAChJ,iBAAiB,EAAE;YAC1BkJ,iBAAiBC,IAAI,CAAC,IAAI,CAACnJ,iBAAiB,CAACgJ,QAAQ;QACvD;QAEA,IAAI,IAAI,CAAC/I,iBAAiB,EAAE;YAC1B,IAAI,CAACA,iBAAiB,CAACmJ,OAAO;QAChC;QAEA,IAAI,IAAI,CAAClJ,oBAAoB,EAAE;YAC7B,IAAI,CAACA,oBAAoB,CAAC8I,QAAQ;QACpC;QAEA,MAAMK,QAAQC,GAAG,CAACJ;QAElB,IAAI,CAACrJ,MAAM,CAACqB,IAAI,CAAC;IACnB;AACF;AAEA,OAAO,SAASqI,qBAAqBzJ,SAA+B,CAAC,CAAC;IACpE,OAAO,IAAIF,eAAeE;AAC5B"}
@@ -0,0 +1,363 @@
1
+ /**
2
+ * DataDog APM Integration for Claude Flow Novice
3
+ * Provides comprehensive monitoring, tracing, and metrics collection
4
+ */ import { Logger } from '../../utils/logger.js';
5
+ export class DataDogCollector {
6
+ config;
7
+ logger;
8
+ activeSpans = new Map();
9
+ metricsQueue = [];
10
+ logsQueue = [];
11
+ flushInterval;
12
+ constructor(config){
13
+ this.config = {
14
+ serviceName: 'claude-flow-novice',
15
+ env: process.env.NODE_ENV || 'production',
16
+ site: 'datadoghq.com',
17
+ version: process.env.npm_package_version || '1.6.2',
18
+ tracing: {
19
+ enabled: true,
20
+ sampleRate: 1.0,
21
+ excludedUrls: [
22
+ '/health',
23
+ '/metrics'
24
+ ]
25
+ },
26
+ metrics: {
27
+ enabled: true,
28
+ port: 8125,
29
+ prefix: 'claude.flow'
30
+ },
31
+ logs: {
32
+ enabled: true
33
+ },
34
+ profiling: {
35
+ enabled: false,
36
+ sourceCode: false
37
+ },
38
+ ...config
39
+ };
40
+ this.logger = new Logger('DataDogCollector');
41
+ this.startFlushing();
42
+ }
43
+ // Distributed Tracing
44
+ startSpan(operationName, parentSpanId, tags) {
45
+ if (!this.config.tracing?.enabled) return '';
46
+ const spanId = this.generateSpanId();
47
+ const span = {
48
+ traceId: parentSpanId ? this.getTraceId(parentSpanId) : this.generateTraceId(),
49
+ spanId,
50
+ parentSpanId,
51
+ operationName,
52
+ resource: operationName,
53
+ service: this.config.serviceName,
54
+ startTime: Date.now(),
55
+ duration: 0,
56
+ tags: {
57
+ env: this.config.env,
58
+ version: this.config.version,
59
+ ...tags
60
+ }
61
+ };
62
+ this.activeSpans.set(spanId, span);
63
+ return spanId;
64
+ }
65
+ finishSpan(spanId, tags, error) {
66
+ if (!spanId || !this.activeSpans.has(spanId)) return;
67
+ const span = this.activeSpans.get(spanId);
68
+ span.duration = Date.now() - span.startTime;
69
+ if (tags) {
70
+ span.tags = {
71
+ ...span.tags,
72
+ ...tags
73
+ };
74
+ }
75
+ if (error) {
76
+ span.error = 1;
77
+ span.tags['error.type'] = error.constructor.name;
78
+ span.tags['error.message'] = error.message;
79
+ span.tags['error.stack'] = error.stack || '';
80
+ }
81
+ this.sendSpan(span);
82
+ this.activeSpans.delete(spanId);
83
+ }
84
+ // Metrics Collection
85
+ count(metric, value = 1, tags) {
86
+ if (!this.config.metrics?.enabled) return;
87
+ const fullMetricName = this.config.metrics.prefix ? `${this.config.metrics.prefix}.${metric}` : metric;
88
+ const metricData = {
89
+ metric: fullMetricName,
90
+ points: [
91
+ [
92
+ Date.now() / 1000,
93
+ value
94
+ ]
95
+ ],
96
+ type: 'count'
97
+ };
98
+ if (tags) {
99
+ metricData.tags = this.formatTags(tags);
100
+ }
101
+ this.metricsQueue.push(metricData);
102
+ }
103
+ gauge(metric, value, tags) {
104
+ if (!this.config.metrics?.enabled) return;
105
+ const fullMetricName = this.config.metrics.prefix ? `${this.config.metrics.prefix}.${metric}` : metric;
106
+ const metricData = {
107
+ metric: fullMetricName,
108
+ points: [
109
+ [
110
+ Date.now() / 1000,
111
+ value
112
+ ]
113
+ ],
114
+ type: 'gauge'
115
+ };
116
+ if (tags) {
117
+ metricData.tags = this.formatTags(tags);
118
+ }
119
+ this.metricsQueue.push(metricData);
120
+ }
121
+ histogram(metric, value, tags) {
122
+ if (!this.config.metrics?.enabled) return;
123
+ const fullMetricName = this.config.metrics.prefix ? `${this.config.metrics.prefix}.${metric}` : metric;
124
+ const metricData = {
125
+ metric: fullMetricName,
126
+ points: [
127
+ [
128
+ Date.now() / 1000,
129
+ value
130
+ ]
131
+ ],
132
+ type: 'histogram'
133
+ };
134
+ if (tags) {
135
+ metricData.tags = this.formatTags(tags);
136
+ }
137
+ this.metricsQueue.push(metricData);
138
+ }
139
+ // Business Metrics for Agent Operations
140
+ recordAgentOperation(agentType, operation, duration, success) {
141
+ this.count('agent.operations.total', 1, {
142
+ 'agent.type': agentType,
143
+ 'operation.name': operation,
144
+ 'operation.status': success ? 'success' : 'failure'
145
+ });
146
+ this.histogram('agent.operation.duration', duration, {
147
+ 'agent.type': agentType,
148
+ 'operation.name': operation
149
+ });
150
+ if (!success) {
151
+ this.count('agent.operations.errors', 1, {
152
+ 'agent.type': agentType,
153
+ 'operation.name': operation
154
+ });
155
+ }
156
+ }
157
+ recordSwarmActivity(swarmSize, topology, duration, success) {
158
+ this.gauge('swarm.active.size', swarmSize, {
159
+ 'swarm.topology': topology
160
+ });
161
+ this.count('swarm.executions.total', 1, {
162
+ 'swarm.topology': topology,
163
+ 'execution.status': success ? 'success' : 'failure'
164
+ });
165
+ this.histogram('swarm.execution.duration', duration, {
166
+ 'swarm.topology': topology
167
+ });
168
+ }
169
+ recordWebSocketEvent(eventType, duration, success) {
170
+ this.count('websocket.events.total', 1, {
171
+ 'event.type': eventType,
172
+ 'event.status': success ? 'success' : 'failure'
173
+ });
174
+ this.histogram('websocket.event.duration', duration, {
175
+ 'event.type': eventType
176
+ });
177
+ // Track active connections
178
+ if (eventType === 'connection') {
179
+ this.gauge('websocket.connections.active', 1);
180
+ } else if (eventType === 'disconnection') {
181
+ this.gauge('websocket.connections.active', -1);
182
+ }
183
+ }
184
+ recordAPICall(method, route, statusCode, duration) {
185
+ this.count('api.requests.total', 1, {
186
+ 'http.method': method,
187
+ 'http.route': route,
188
+ 'http.status_code': statusCode.toString()
189
+ });
190
+ this.histogram('api.request.duration', duration, {
191
+ 'http.method': method,
192
+ 'http.route': route
193
+ });
194
+ if (statusCode >= 400) {
195
+ this.count('api.errors.total', 1, {
196
+ 'http.method': method,
197
+ 'http.route': route,
198
+ 'http.status_code': statusCode.toString()
199
+ });
200
+ }
201
+ }
202
+ // Logging Integration
203
+ log(message, level, metadata) {
204
+ if (!this.config.logs?.enabled) return;
205
+ const logEntry = {
206
+ message,
207
+ service: this.config.serviceName,
208
+ env: this.config.env,
209
+ timestamp: Date.now(),
210
+ level,
211
+ metadata
212
+ };
213
+ this.logsQueue.push(logEntry);
214
+ }
215
+ // Performance Monitoring
216
+ startPerformanceProfiling() {
217
+ if (!this.config.profiling?.enabled) return;
218
+ // Enable Node.js profiling
219
+ if (process.env.NODE_ENV === 'production') {
220
+ // In production, you would enable profiling here
221
+ this.logger.info('Performance profiling enabled');
222
+ }
223
+ }
224
+ recordPerformanceMetric(operation, duration, metadata) {
225
+ this.histogram('performance.operation.duration', duration, {
226
+ 'operation.name': operation,
227
+ ...metadata
228
+ });
229
+ if (duration > 5000) {
230
+ this.log(`Slow operation detected: ${operation}`, 'warn', {
231
+ duration,
232
+ operation,
233
+ ...metadata
234
+ });
235
+ }
236
+ }
237
+ // Health Check
238
+ async healthCheck() {
239
+ try {
240
+ const health = {
241
+ status: 'healthy',
242
+ details: {
243
+ config: {
244
+ tracing: this.config.tracing?.enabled || false,
245
+ metrics: this.config.metrics?.enabled || false,
246
+ logs: this.config.logs?.enabled || false,
247
+ profiling: this.config.profiling?.enabled || false
248
+ },
249
+ activeSpans: this.activeSpans.size,
250
+ queuedMetrics: this.metricsQueue.length,
251
+ queuedLogs: this.logsQueue.length,
252
+ lastFlush: Date.now()
253
+ }
254
+ };
255
+ // Check if queues are growing too large
256
+ if (this.metricsQueue.length > 1000 || this.logsQueue.length > 1000) {
257
+ health.status = 'degraded';
258
+ health.details.queues = 'high';
259
+ }
260
+ return health;
261
+ } catch (error) {
262
+ return {
263
+ status: 'unhealthy',
264
+ details: {
265
+ error: error.message
266
+ }
267
+ };
268
+ }
269
+ }
270
+ // Private Methods
271
+ generateSpanId() {
272
+ return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
273
+ }
274
+ generateTraceId() {
275
+ return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
276
+ }
277
+ getTraceId(spanId) {
278
+ const span = this.activeSpans.get(spanId);
279
+ return span?.traceId || this.generateTraceId();
280
+ }
281
+ formatTags(tags) {
282
+ return Object.entries(tags).map(([key, value])=>`${key}:${value}`);
283
+ }
284
+ sendSpan(span) {
285
+ if (!this.config.apiKey) return;
286
+ // In a real implementation, you would send this to DataDog's trace API
287
+ this.logger.debug('Sending span to DataDog', {
288
+ traceId: span.traceId,
289
+ spanId: span.spanId,
290
+ operation: span.operationName,
291
+ duration: span.duration
292
+ });
293
+ }
294
+ async flushMetrics() {
295
+ if (!this.config.apiKey || this.metricsQueue.length === 0) return;
296
+ const metricsToSend = [
297
+ ...this.metricsQueue
298
+ ];
299
+ this.metricsQueue = [];
300
+ try {
301
+ // In a real implementation, send to DataDog's metrics API
302
+ this.logger.debug(`Flushing ${metricsToSend.length} metrics to DataDog`);
303
+ } catch (error) {
304
+ this.logger.error('Failed to flush metrics to DataDog', {
305
+ error: error.message
306
+ });
307
+ // Re-queue failed metrics
308
+ this.metricsQueue.unshift(...metricsToSend);
309
+ }
310
+ }
311
+ async flushLogs() {
312
+ if (!this.config.logs?.apiKey || this.logsQueue.length === 0) return;
313
+ const logsToSend = [
314
+ ...this.logsQueue
315
+ ];
316
+ this.logsQueue = [];
317
+ try {
318
+ // In a real implementation, send to DataDog's logs API
319
+ this.logger.debug(`Flushing ${logsToSend.length} logs to DataDog`);
320
+ } catch (error) {
321
+ this.logger.error('Failed to flush logs to DataDog', {
322
+ error: error.message
323
+ });
324
+ // Re-queue failed logs
325
+ this.logsQueue.unshift(...logsToSend);
326
+ }
327
+ }
328
+ startFlushing() {
329
+ this.flushInterval = setInterval(async ()=>{
330
+ await Promise.all([
331
+ this.flushMetrics(),
332
+ this.flushLogs()
333
+ ]);
334
+ }, 10000); // Flush every 10 seconds
335
+ }
336
+ // Shutdown
337
+ async shutdown() {
338
+ this.logger.info('Shutting down DataDog collector');
339
+ if (this.flushInterval) {
340
+ clearInterval(this.flushInterval);
341
+ }
342
+ // Flush any remaining data
343
+ await Promise.all([
344
+ this.flushMetrics(),
345
+ this.flushLogs()
346
+ ]);
347
+ // Clean up any remaining spans
348
+ for (const spanId of this.activeSpans.keys()){
349
+ this.finishSpan(spanId, {
350
+ 'shutdown': 'true'
351
+ });
352
+ }
353
+ this.logger.info('DataDog collector shutdown complete');
354
+ }
355
+ }
356
+ export function createDataDogCollector(config = {}) {
357
+ return new DataDogCollector({
358
+ enabled: true,
359
+ ...config
360
+ });
361
+ }
362
+
363
+ //# sourceMappingURL=datadog-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/monitoring/apm/datadog-collector.ts"],"names":["Logger","DataDogCollector","config","logger","activeSpans","Map","metricsQueue","logsQueue","flushInterval","serviceName","env","process","NODE_ENV","site","version","npm_package_version","tracing","enabled","sampleRate","excludedUrls","metrics","port","prefix","logs","profiling","sourceCode","startFlushing","startSpan","operationName","parentSpanId","tags","spanId","generateSpanId","span","traceId","getTraceId","generateTraceId","resource","service","startTime","Date","now","duration","set","finishSpan","error","has","get","name","message","stack","sendSpan","delete","count","metric","value","fullMetricName","metricData","points","type","formatTags","push","gauge","histogram","recordAgentOperation","agentType","operation","success","recordSwarmActivity","swarmSize","topology","recordWebSocketEvent","eventType","recordAPICall","method","route","statusCode","toString","log","level","metadata","logEntry","timestamp","startPerformanceProfiling","info","recordPerformanceMetric","healthCheck","health","status","details","size","queuedMetrics","length","queuedLogs","lastFlush","queues","Math","random","substring","Object","entries","map","key","apiKey","debug","flushMetrics","metricsToSend","unshift","flushLogs","logsToSend","setInterval","Promise","all","shutdown","clearInterval","keys","createDataDogCollector"],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * APM Integration Main Entry Point
3
+ * Exports all APM components for easy integration
4
+ */ export { DataDogCollector, createDataDogCollector } from './datadog-collector.js';
5
+ export { NewRelicCollector, createNewRelicCollector } from './newrelic-collector.js';
6
+ export { DistributedTracer, createDistributedTracer } from './distributed-tracing.js';
7
+ export { PerformanceOptimizer, createPerformanceOptimizer } from './performance-optimizer.js';
8
+ export { APMIntegration, createAPMIntegration } from './apm-integration.js';
9
+ // Default configuration factory
10
+ export function createDefaultAPMConfig(overrides = {}) {
11
+ return {
12
+ dataDog: {
13
+ enabled: process.env.DATADOG_ENABLED === 'true',
14
+ apiKey: process.env.DATADOG_API_KEY,
15
+ site: process.env.DATADOG_SITE || 'datadoghq.com',
16
+ serviceName: process.env.DATADOG_SERVICE_NAME || 'claude-flow-novice',
17
+ env: process.env.NODE_ENV || 'production',
18
+ version: process.env.npm_package_version || '1.6.2',
19
+ tracing: {
20
+ enabled: true,
21
+ sampleRate: parseFloat(process.env.DATADOG_TRACE_SAMPLE_RATE || '1.0'),
22
+ excludedUrls: [
23
+ '/health',
24
+ '/metrics'
25
+ ]
26
+ },
27
+ metrics: {
28
+ enabled: true,
29
+ port: parseInt(process.env.DATADOG_METRICS_PORT || '8125'),
30
+ prefix: 'claude.flow'
31
+ },
32
+ logs: {
33
+ enabled: true,
34
+ apiKey: process.env.DATADOG_LOG_API_KEY || process.env.DATADOG_API_KEY,
35
+ site: process.env.DATADOG_SITE || 'datadoghq.com'
36
+ },
37
+ profiling: {
38
+ enabled: process.env.DATADOG_PROFILING_ENABLED === 'true',
39
+ sourceCode: false
40
+ }
41
+ },
42
+ newRelic: {
43
+ enabled: process.env.NEWRELIC_ENABLED === 'true',
44
+ licenseKey: process.env.NEWRELIC_LICENSE_KEY,
45
+ appName: process.env.NEWRELIC_APP_NAME || 'Claude Flow Novice',
46
+ accountId: process.env.NEWRELIC_ACCOUNT_ID,
47
+ trustKey: process.env.NEWRELIC_TRUST_KEY,
48
+ env: process.env.NODE_ENV || 'production',
49
+ version: process.env.npm_package_version || '1.6.2',
50
+ tracing: {
51
+ enabled: true,
52
+ distributedTracing: true,
53
+ transactionEvents: true,
54
+ spanEvents: true
55
+ },
56
+ metrics: {
57
+ enabled: true,
58
+ apiHost: process.env.NEWRELIC_METRICS_API_HOST || 'https://metric-api.newrelic.com',
59
+ metricApiPath: '/metric/v1'
60
+ },
61
+ logs: {
62
+ enabled: true,
63
+ apiHost: process.env.NEWRELIC_LOG_API_HOST || 'https://log-api.newrelic.com',
64
+ logApiPath: '/log/v1'
65
+ },
66
+ browserMonitoring: {
67
+ enabled: process.env.NEWRELIC_BROWSER_MONITORING_ENABLED === 'true'
68
+ }
69
+ },
70
+ distributedTracing: {
71
+ enabled: process.env.DISTRIBUTED_TRACING_ENABLED !== 'false',
72
+ samplingRate: parseFloat(process.env.TRACE_SAMPLING_RATE || '1.0')
73
+ },
74
+ performanceOptimization: {
75
+ enabled: process.env.PERFORMANCE_OPTIMIZATION_ENABLED !== 'false',
76
+ monitoringInterval: parseInt(process.env.PERFORMANCE_MONITORING_INTERVAL || '5000')
77
+ },
78
+ customMetrics: {
79
+ enabled: process.env.CUSTOM_METRICS_ENABLED !== 'false',
80
+ interval: parseInt(process.env.CUSTOM_METRICS_INTERVAL || '10000')
81
+ },
82
+ alerting: {
83
+ enabled: process.env.APM_ALERTING_ENABLED === 'true',
84
+ webhookUrl: process.env.APM_WEBHOOK_URL,
85
+ slackChannel: process.env.APM_SLACK_CHANNEL,
86
+ emailRecipients: process.env.APM_EMAIL_RECIPIENTS?.split(',').filter(Boolean)
87
+ },
88
+ ...overrides
89
+ };
90
+ }
91
+ // Convenience function for quick setup
92
+ export function setupAPM(configOverrides) {
93
+ const config = createDefaultAPMConfig(configOverrides);
94
+ return createAPMIntegration(config);
95
+ }
96
+
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/monitoring/apm/index.ts"],"names":["DataDogCollector","createDataDogCollector","NewRelicCollector","createNewRelicCollector","DistributedTracer","createDistributedTracer","PerformanceOptimizer","createPerformanceOptimizer","APMIntegration","createAPMIntegration","createDefaultAPMConfig","overrides","dataDog","enabled","process","env","DATADOG_ENABLED","apiKey","DATADOG_API_KEY","site","DATADOG_SITE","serviceName","DATADOG_SERVICE_NAME","NODE_ENV","version","npm_package_version","tracing","sampleRate","parseFloat","DATADOG_TRACE_SAMPLE_RATE","excludedUrls","metrics","port","parseInt","DATADOG_METRICS_PORT","prefix","logs","DATADOG_LOG_API_KEY","profiling","DATADOG_PROFILING_ENABLED","sourceCode","newRelic","NEWRELIC_ENABLED","licenseKey","NEWRELIC_LICENSE_KEY","appName","NEWRELIC_APP_NAME","accountId","NEWRELIC_ACCOUNT_ID","trustKey","NEWRELIC_TRUST_KEY","distributedTracing","transactionEvents","spanEvents","apiHost","NEWRELIC_METRICS_API_HOST","metricApiPath","NEWRELIC_LOG_API_HOST","logApiPath","browserMonitoring","NEWRELIC_BROWSER_MONITORING_ENABLED","DISTRIBUTED_TRACING_ENABLED","samplingRate","TRACE_SAMPLING_RATE","performanceOptimization","PERFORMANCE_OPTIMIZATION_ENABLED","monitoringInterval","PERFORMANCE_MONITORING_INTERVAL","customMetrics","CUSTOM_METRICS_ENABLED","interval","CUSTOM_METRICS_INTERVAL","alerting","APM_ALERTING_ENABLED","webhookUrl","APM_WEBHOOK_URL","slackChannel","APM_SLACK_CHANNEL","emailRecipients","APM_EMAIL_RECIPIENTS","split","filter","Boolean","setupAPM","configOverrides","config"],"mappings":"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"}