public String getTraceId(ServerWebExchange exchange) { String traceId = null; try { Object entrySpanInstance = exchange.getAttributes().get("SKYWALING_SPAN"); Class<?> entrySpanClazz = entrySpanInstance.getClass().getSuperclass().getSuperclass(); Field field = entrySpanClazz.getDeclaredField("owner"); field.setAccessible(true); Object ownerInstance = field.get(entrySpanInstance); Class<?> ownerClazz = ownerInstance.getClass(); Method getTraceId = ownerClazz.getMethod("getReadablePrimaryTraceId"); traceId = (String) getTraceId.invoke(ownerInstance); return traceId; } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return null; }
Gateway tid 问题解决办法
最新推荐文章于 2024-04-27 14:26:43 发布