Ведение журнала Splunk в Angular Analytics

У меня есть угловая страница, которую я разработал для своей компании. для которого я хочу отслеживать статистику использования. Просто основная информация, например, количество просмотров. Я пытаюсь использовать подключаемый модуль angulartics, найденный здесь. Пока что это то, что у меня есть на моей угловой странице, которую я скопировал из папки примеров git:

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']);

Конечно, скрипт в html нуждается в корректировке из-за конечной точки, но у меня там проблема. Как моя компания. имеет такую ​​настройку ведения журнала splunk: Разработчик выполняет любой вид ведения журнала, который они хотят, в приложении java. Все записи идут в catalina.out. Приложение развертывается на различных удаленных серверах (Dev, QA, Prod). Разработчик может запустить поисковый запрос в корпоративном splunk, размещенном в домене компании, для поиска в определенном поле (поле разработчика) определенного файла журнала (tomcat.log, catalina.out и т. Д.).

В этом сценарии, как мне сделать журнал приложения angular в файл (не обязательно catalina.out obv, поскольку splunk может запрашивать любой файл журнала), в результате чего splunk сможет забрать его из своего окна развертывания?

Если это невозможно, нужно ли мне добавить конечную точку splunk в строку sp.load, чтобы страница angular отправляла свою статистику напрямую в splunk?


person Richard    schedule 09.05.2016    source источник


Ответы (2)


У вас есть несколько вариантов.

Если вы хотите войти в файл, подобный приложениям Java, которые использует ваша компания, вам необходимо создать серверную службу, в которую ваше приложение Angular может отправлять данные. Затем эта внутренняя служба может записывать в файл.

Если вы используете Splunk 6.3 или новее, вы можете использовать Сборщик событий HTTP для отправки событий через HTTP с лучшей производительностью. Вы можете использовать нашу библиотеку Splunk для JavaScript с browserify, см. Подробнее о выпуске GitHub.

person Shakeel    schedule 10.05.2016

Я работал над решением Plug & Play для Angular (1.5) на основе angular-loggly-logger, которое могло бы быть проще в использовании: https://github.com/mer10z/angular-splunk-logger

Он использует $ http для публикации в сборщике событий HTTP Splunk, поэтому вам не нужно просматривать или какие-либо другие внешние зависимости.

person mer10z_tech    schedule 16.12.2016