2017-06-01 2 views
1

Je configure le gestionnaire d'API wso2 1.10.x avec DAS 3.0.1 pour la publication de statistiques d'API à l'aide de mysql. Mon système de gestionnaire d'API est mis en cluster avec un nœud de passerelle sur une machine virtuelle distincte. J'ai suivi les documents suivants pour activer l'analyse du gestionnaire d'API via l'interface utilisateur. http://mail.wso2.org/mailarchive/dev/2016-March/060905.html J'ai également suivi ce document pour activer manuellement l'analyse pour le nœud de travail de la passerelle. http://blog.rukspot.com/2016/05/configure-wso2-apim-analytics-using-xml.html Après la configuration, je redémarre tous les serveurs, tout semble bien. Mais quand je fais une demande à l'API publiée, à partir du journal des travailleurs de la passerelle, je ne vois pas la publication de statistiques au récepteur DAS. Aucune donnée dans les tableaux récapitulatifs DAS non plus. Que dois-je faire pour que le noeud du gestionnaire de passerelle API Manager publie les statistiques dans DAS? Est-ce que je manque quelque chose dans la configuration?La passerelle wo2 api manager en cluster ne publie pas de statistiques vers DAS

Je vois l'exception suivante dans DAS (que je ne pense pas est liée au nœud de travailleur passerelle ne pas publier des statistiques).

[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) 

Configuration (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

Salut Laomao, pouvez-vous joindre plus d'informations (par exemple les configurations etc) afin que tout le monde peut avoir un aperçu du problème. –

+0

Voici la partie principale de api-manager.xml pour le nœud de travailleur de la passerelle: vrai {tcp: //10.14.3.93: 7614} https : //10.14.3.93: 9446 false org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher false Je n'ai rien changé pour Merci. – laomao

+0

Salut Fabian, Y a-t-il des logs dans le noeud de travail wso2 qui peuvent montrer que le noeud worker essaie de publier des statistiques (quel que soit l'échec ou le succès)? Je n'en vois pas dans le fichier wso2carbon.log. Merci. – laomao

Répondre

0

Il semble que le org.xerial.snappy.snappy-java_1.1.1.7.jar qui est dans votre répertoire plugins est d'avoir un problème d'en-tête OSGI. Veuillez télécharger le fichier jar depuis maven repository et copiez-le dans le répertoire {DAS_HOME}/repository/components/lib et redémarrez le serveur.

+0

Merci Chamalee. Le téléchargement de ce fichier jar a corrigé l'exception précédente. Maintenant, je reçois une exception différente dans DAS: '[2017-06-02 09: 55: 02,453] ERROR {org.wso2.carbon.ntask.core.impl.TaskQuartzJobAdapter} - Erreur lors de l'exécution de la tâche: Table introuvable: X1234_API_REQUEST_SUMMARY_FINAL java.lang.RuntimeException: Tableau introuvable: X1234_API_REQUEST_SUMMARY_FINAL à scala.sys.package .error de $ (de package.scala: 27) à org.apache.spark.sql.catalyst.analysis.SimpleCatalog $$ anonfun 1 $. apply (Catalog.scala: 115) ' notre système est multi-locataire. – laomao