2017-06-01 55 views
1

我正在使用DAS 3.0.1設置wso2 API管理器1.10.x,以便使用mysql發佈API統計信息。我的API管理器系統與單獨的虛擬機上的網關工作者節點集羣。我遵循以下文檔來通過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發佈統計信息,我需要做些什麼?我在配置中缺少任何東西嗎?羣集的wso2 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> 
+0

Hi Laomao,你可以附加更多的信息(例如配置等),這樣每個人都可以看到問題的一瞥。 –

+0

這裏是API-manager.xml的用於網關工作節點的主要部分: {TCP://10.14.3.93:7614} HTTPS ://10.14.3.93:9446 org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher 我沒有改變任何東西 謝謝。 – laomao

+0

嗨Fabian, 是否有任何日誌wso2工人節點,它可以告訴我,工人節點正試圖發佈統計信息(無論失敗或成功)? 我沒有在wso2carbon.log中看到任何內容。 謝謝。 – laomao

回答

0

看來,org.xerial.snappy.snappy-java_1.1.1.7.jar這是你的插件目錄是有一個OSGI頭問題。 請從maven repository下載jar文件並將其複製到{DAS_HOME}/repository/components/lib目錄並重新啓動服務器。

+0

謝謝Chamalee。下載該jar文件修復了以前的異常。現在我在DAS中遇到了另一個異常: '[2017-06-02 09:55:02,453] ERROR {org.wso2.carbon.ntask.core.impl.TaskQuartzJobAdapter} - 執行任務時出錯:表未找到: X1234_API_REQUEST_SUMMARY_FINAL 了java.lang.RuntimeException:表中找不到:X1234_API_REQUEST_SUMMARY_FINAL 在scala.sys.package $ .error(package.scala:27) 在org.apache.spark.sql.catalyst.analysis.SimpleCatalog $$ anonfun $ 1中。適用(Catalog.scala:115)' 我們的系統是多租戶。 – laomao

相關問題