1

我有一个为我的公司开发的角度页面。我想跟踪其使用统计信息。只是非常基本的信息,例如点击次数。我正在尝试使用此处找到的 angulartics 插件。到目前为止,这是我从 git 示例文件夹中复制的 Angular 页面中的内容:

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.outobv,因为 splunk 可以查询任何日志文件),从而 splunk 将能够从其部署框中获取它?

如果这不可能,我是否需要在行中放置一些 splunk 端点,sp.load以便角度页面将其统计信息直接发送到 splunk?

4

2 回答 2

2

您在这里有几个选择。

如果您想登录到您公司使用的 Java 应用程序之类的文件,您需要创建一个后端服务,您的 Angular 应用程序可以将数据发送到该服务。然后,该后端服务可以写入文件。

如果您运行的是 Splunk 6.3 或更高版本,则可以使用HTTP 事件收集器通过 HTTP 发送事件,从而获得更好的性能。您可以将我们的Splunk 日志记录用于 JavaScript库和browserify,有关更多详细信息,请参阅此GitHub 问题

于 2016-05-10T04:12:44.030 回答
0

我一直在研究基于 angular-loggly-logger 的即插即用 Angular (1.5) 解决方案,该解决方案可能更易于使用:https ://github.com/mer10z/angular-splunk-logger

它使用 $http 发布到 Splunk HTTP 事件收集器,因此您不需要 browserify 或任何其他外部依赖项。

于 2016-12-16T19:12:02.740 回答