【问题标题】:clustered wso2 api manager gateway does not publish statistics to DAS集群化 wso2 api 管理器网关不向 DAS 发布统计信息
【发布时间】:2017-06-03 04:19:19
【问题描述】:

我正在使用 DAS 3.0.1 设置 wso2 API 管理器 1.10.x,以便使用 mysql 发布 API 统计信息。我的 API 管理器系统与单独的 VM 上的网关工作节点集群在一起。我按照以下文档通过 UI 启用 API 管理器的分析。 http://mail.wso2.org/mailarchive/dev/2016-March/060905.html 我还按照此文档手动启用了网关工作节点的分析。 http://blog.rukspot.com/2016/05/configure-wso2-apim-analytics-using-xml.html 设置后,我重新启动所有服务器,一切似乎都很好。 但是,当我从网关工作日志向已发布的 API 发出请求时,我看不到它向 DAS 接收器发布任何统计信息。 DAS 汇总表中也没有数据。 我需要做什么才能使 API 管理器网关工作节点将统计信息发布到 DAS?我在配置中遗漏了什么吗?

我确实在 DAS 中看到了以下异常(我认为这与网关工作节点不发布统计信息无关)。

[2017-05-31 17:02:46,660]  INFO {org.wso2.carbon.event.processor.manager.core.internal.CarbonEventManagementService} -  Starting polling event receivers
Exception in thread "dag-scheduler-event-loop" java.lang.NoClassDefFoundError: org/xerial/snappy/SnappyInputStream
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.apache.spark.io.CompressionCodec$.createCodec(CompressionCodec.scala:66)
        at org.apache.spark.io.CompressionCodec$.createCodec(CompressionCodec.scala:60)
        at org.apache.spark.broadcast.TorrentBroadcast.org$apache$spark$broadcast$TorrentBroadcast$$setConf(TorrentBroadcast.scala:73)
        at org.apache.spark.broadcast.TorrentBroadcast.<init>(TorrentBroadcast.scala:80)
        at org.apache.spark.broadcast.TorrentBroadcastFactory.newBroadcast(TorrentBroadcastFactory.scala:34)
        at org.apache.spark.broadcast.BroadcastManager.newBroadcast(BroadcastManager.scala:62)
        at org.apache.spark.SparkContext.broadcast(SparkContext.scala:1292)
        at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$submitMissingTasks(DAGScheduler.scala:874)
        at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$submitStage(DAGScheduler.scala:815)
        at org.apache.spark.scheduler.DAGScheduler.handleJobSubmitted(DAGScheduler.scala:799)
        at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1429)
        at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1421)
        at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
Caused by: java.lang.ClassNotFoundException: org.xerial.snappy.SnappyInputStream cannot be found by spark-core_2.10_1.4.2.wso2v1
        at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
        at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
        at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

配置(api-manager.xml):

<APIUsageTracking>
    <Enabled>true</Enabled>
    <DASServerURL>{tcp://10.14.3.93:7614}</DASServerURL>
    <DASRestApiURL>10.14.3.93:9446</DASRestApiURL>
    <SkipEventReceiverConnection>false</SkipEventReceiverConnect‌​ion>
    <PublisherClass>org.wso2.carbon.apimgt.usage.publisher.APIMg‌​tUsageDataBridgeData‌​Publisher</Publisher‌​Class>
    <PublishResponseMessageSize>false</PublishResponseMessageSiz‌​e>
</APIUsageTracking>

【问题讨论】:

  • 您好,老猫,能否附上更多信息(例如配置等),以便大家了解问题。
  • 这里是网关工作节点的 api-manager.xml 的主要部分: true{tcp://10.14.3.93:7614} 10.14.3.93:9446</DASRestApiURL> falseorg.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisherfalse 我没有为 改变任何东西。谢谢。
  • 嗨 Fabian,wso2 工作节点中是否有任何日志可以显示工作节点正在尝试发布统计信息(无论失败还是成功)?我在 wso2carbon.log 中没有看到任何内容。谢谢。

标签: wso2-am wso2-das


【解决方案1】:

您的插件目录中的 org.xerial.snappy.snappy-java_1.1.1.7.jar 似乎存在 OSGI 标头问题。 请从maven repository下载jar文件并将其复制到{DAS_HOME}/repository/components/lib目录并重启服务器。

【讨论】:

  • 谢谢查玛莉。下载该 jar 文件修复了先前的异常。现在我在 DAS 中遇到了一个不同的异常:[2017-06-02 09:55:02,453] ERROR {org.wso2.carbon.ntask.core.impl.TaskQuartzJobAdapter} - Error in executing task: Table Not Found: X1234_API_REQUEST_SUMMARY_FINAL java.lang.RuntimeException: Table Not Found: X1234_API_REQUEST_SUMMARY_FINAL at scala.sys.package$.error(package.scala:27) at org.apache.spark.sql.catalyst.analysis.SimpleCatalog$$anonfun$1.apply(Catalog.scala:115) 我们的系统是多租户的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多