当前位置: 首页 > 后端技术 > Node.js

Apollo服务器综合性能监控

时间:2023-04-03 14:08:04 Node.js

ApolloServer寮€绠卞嵆鏀寔ApolloEngine锛屼絾鏄笉鐭ヤ粈涔堝師鍥狅紝鍥藉唴鏃犳硶璁块棶ApolloEngine鐨凙PI锛堢湡涓嶇煡閬撲负浠€涔堣繖涓狝PI浼氳灏侊級锛屽彧鑳藉彟杈熻箠寰勩€侫polloServer鏈韩鏈変竴涓狝polloTracing鐨勬墿灞曪紝鍙互鐢ㄤ簬鎬ц兘鐩戞帶銆傞€氳繃鎵╁睍ApolloTracing锛屽皢鏀堕泦鍒扮殑鎸囨爣浼犺緭鍒板垎甯冨紡璺熻釜绯荤粺銆傚彟澶栬繕鏈変竴涓紑婧愬簱ApolloOpentracing锛屽彲浠ユ敹闆嗘寚鏍囷紝浼犺緭缁橨aeger鎴朲ipkin锛岄€氳繃Jaeger鎴朲ipkin瀹炵幇鎬ц兘鐩戞帶鍜屽垎鏋愩€備负浜嗘柟渚匡紝鐩存帴浣跨敤ApolloOpentracing銆傚垎甯冨紡璺熻釜绯荤粺浣跨敤Jaeger銆備娇鐢―ocker鎼缓JaegerJaeger瀹樻柟鏂囨。鍦ㄦ祻瑙堝櫒涓墦寮€http://localhost:16686璁块棶JaegerBuildApolloServermkdirapollo-opentracing-democdapollo-opentracing-demoyarninit-yyarnaddapollo-server//index.jsconst{ApolloServer,gql}=require('apollo-server')consttypeDefs=gql`typeQuery{hello:String}`constresolvers={Query:{hello:()=>'world',},}constserver=newApolloServer({typeDefs,resolvers,})server.listen().then(({url})=>{console.log(`馃殌Serverreadyat${url}`)})runnodeindex.jsintegrateApolloOpentracingyarnaddapollo-opentracingjaeger-client//tracer.jsconst{榛樿鍊硷細OpentracingExtension}=require('apollo-opentracing')const{initTracer}=require('jaeger-client')constconfig={serviceName:'apollo-opentracing-demo',sampler:{type:'const',param:1,},reporter:{logSpans:true,collectorEndpoint:'http://localhost:14268/api/traces',},}constoptions={logger:{info(msg){console.log('INFO',msg)},error(msg){console.log('閿欒',msg)},},}consttracer=initTracer(config,options)constopentracingExtension=()=>{console.log(123)returnnewOpentracingExtension({local:tracer,server:tracer,})}module.exports={opentracingExtension,}const{opentracingExtension}=require('./tracer.js')//瀵煎叆鎵╁睍...constserver=newApolloServer({typeDefs,resolvers,extensions:[opentracingExtension],//浣跨敤Extension})...鐢ㄦ祻瑙堝櫒鎵撳紑http://localhost:4000/锛屼娇鐢ㄥ涓嬭鍙ユ煡璇uery{hello}鐒跺悗鎵撳紑http://localhost:16686锛岀偣鍑籉indTraces鍙互鐪嬪埌鍒氭墠鏌ヨ鐨勬寚鏍囧弬鑰働erformanceTracingforGraphQLwithApollo鍜屽畠鐨勬湅鍙婣polloOpentracingJaegerjaeger-瀹㈡埛绔妭鐐?/p>