2016-05-09 4 views
1

Ich habe eine eckige Seite, die ich für meine co entwickelt habe. dass ich die Nutzungsstatistiken für verfolgen möchte. Nur sehr grundlegende Informationen wie die Anzahl der Treffer. Ich versuche das angulartics plugin here zu verwenden. Bisher ist es das, was ich in meinem Winkel Seite, die ich aus den git Beispielen Ordner kopiert:Angular Analytics Splunk Logging

HTML:

<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <title>Topic Tester</title> 
    <meta name="description" content=""> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <script src="static/js/angular.min.js"></script> 
    <script src="static/js/angulartics.min.js"></script> 
    <script src="static/js/angulartics-splunk.min.js"></script> 
    <script src="static/js/controller.js"></script> 
    <script type="text/javascript"> 
     var sp=sp||[]; 
     (function(){var e=["init","identify","track","trackLink","pageview"], t=function(e){return function(){sp.push([e].concat(Array.prototype.slice.call(arguments,0)))}}; 
      for(var n=0;n<e.length;n++)sp[e[n]]=t(e[n])})(), sp.load=function(e,o){sp._endpoint=e; 
      if(o){sp.init(o)}; 
      var t=document.createElement("script"); 
      t.type="text/javascript",t.async=!0,t.src=("https:"===document.location.protocol?"https://":"http://")+"d21ey8j28ejz92.cloudfront.net/analytics/v1/sp.min.js"; 
      var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n)}; 

     sp.load("http://localhost:9000/api/log"); 
    </script> 
</head> 

JS

var app = angular.module('myApp',['angulartics', 
            'angulartics.splunk']); 

Natürlich ist das Skript in den HTML-Bedürfnissen Anpassung wegen des Endpunktes habe ich da aber ein Problem. So wie meine Co. hat Splunk-Logging-Setup ist dies: Entwickler macht jede Art von Protokollierung sie in der Java-App wollen. Die gesamte Protokollierung geht an catalina.out. Die Anwendung wird auf verschiedenen Remote-Servern (Dev, QA, Prod) bereitgestellt. Der Entwickler kann eine Suchabfrage in einem Unternehmens-Splunk ausführen, der in einer Unternehmensdomäne gehostet wird, um in einer bestimmten Box (Dev-Box) nach einer bestimmten Protokolldatei zu suchen (tomcat.log, catalina.out, usw.).

In diesem Szenario wie würde ich die Winkel app Protokoll in eine Datei machen (muss nicht catalina.out OBV sein, da splunk für jede Protokolldatei abfragen kann), wodurch splunk Lage sein wird, es von seinem Einsatz Box zu holen ?

Wenn das nicht möglich ist, muss ich einige Splunk-Endpunkt in der sp.load Zeile setzen, wobei die eckige Seite wird ihre Statistiken direkt zu splunk?

Antwort

2

Sie haben hier ein paar Optionen.

Wenn Sie sich bei einer Datei wie den von Ihrem Unternehmen verwendeten Java-Apps anmelden möchten, müssen Sie einen Back-End-Dienst erstellen, an den Ihre Angular-App Daten senden kann. Dieser Back-End-Dienst kann dann in eine Datei schreiben.

Wenn Sie Splunk 6.3 oder neuer verwenden, können Sie die HTTP Event Collector verwenden, um Ereignisse über HTTP mit einer besseren Leistung rundherum zu senden. Sie können unsere Splunk logging for JavaScript Bibliothek mit browserify verwenden, siehe hierzu GitHub issue für weitere Details.

0

Ich habe auf einer Plug & play Angular (1,5) Lösung auf Basis von Winkeln loggly-Logger arbeiten, die einfacher sein könnten, zu verwenden: https://github.com/mer10z/angular-splunk-logger

Es verwendet http $, um die Splunk HTTP Ereignis posten Collector, so dass Sie keine browsery oder andere externe Abhängigkeiten benötigen.