NodeExpress服务器侦听http://localhost:4200SSR渲染超时2000,回退到CSR/SSR渲染超时2000,回退到CSR/xyzSSR渲染超时2000,回退到CSR/p/xyz/的渲染无法完成。这可能会导致内存泄漏!SSR渲染超过超时2000,回退到/p/xyz的CSR/p/xyz的渲染无法完成。这可能会导致内存泄漏!/p/xyz的呈现无法完成。这可能会导致内存泄漏!从上面的错误日志我们可以推断出应用在SSR中的渲染,对于/,/xyz的页面请求,以及/p/xyz的页面请求,都没有成功完成。这可能是由多种原因引起的,例如挂起的异步任务(例如挂起的OCCAPI调用),或者在渲染完成之前由于运行时异常导致应用程序崩溃。可以在app.module.ts中添加如下调试信息,打印SERVER_REQUEST_URL和SERVER_REQUEST_ORIGIN的值。导出类AppModule{constructor(@Optional()@Inject(SERVER_REQUEST_URL)protectedserverRequestUrl?:string,@Optional()@Inject(SERVER_REQUEST_ORIGIN)protectedserverRequestOrigin?:string){console.log({serverRequestUrl,serverRequest})stOrigin;这些请求可以在Dynatrace中找到->去看看你是否可以看到子API调用。不幸的是,如果有些人没有及时返回,Dynatrace将不会在该请求下记录它们(该请求以DT的CSR响应结束)。可能值得弄清楚客户端在发生此类问题时将maxRenderTime设置为什么。当请求超时返回CSR时,原来的SSR渲染还在后台运行。但是本文开头的这些日志显示后台渲染也从未完成->它达到了maxRenderTime。如何解释同一个API,SSR和CSR模式下响应时间的巨大差异?来自SSR的API调用可能不会命中CSR版本命中的同一API节点实例。也许在一个低使用率的系统上,有一些API节点没有完全预热,这些需要很长时间。Dynatrae不会记录未正常完成的API请求。确保SSR服务器的ip地址没有出现在APIpod的IP限制中。IP过滤在端点上,它们实际上是Apache配置中的虚拟主机。SSR注入与CSR相同的API端点。因此,与API的SSR连接被发送到Apache,然后Apache反向代理到API节点。所以应该在Apache中查看对应的日志。
