我为我的公司开发了一个有角度的页面。我要跟踪其使用情况统计信息。只是非常基本的信息,例如点击数。我正在尝试使用here找到的angulartics插件。到目前为止,这是我从git examples文件夹复制的角度页面中的内容:
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中运行搜索查询,以在特定的框(dev框)中搜索特定的日志文件(tomcat.log
,catalina.out
等)。在这种情况下,我如何将角度应用日志记录到文件中(因为splunk可以查询任何日志文件,所以不必为
catalina.out
obv),从而使splunk能够从其部署箱中将其提取出来?如果不可能,我是否需要在
sp.load
行中放置一些splunk端点,以便角度页面将其统计信息直接发送给splunk? 最佳答案
您在这里有两个选择。
如果要登录到公司使用的Java应用程序之类的文件,则需要创建一个后端服务,Angular应用程序可以将数据发送到该后端服务。然后,该后端服务可以写入文件。
如果您运行的是Splunk 6.3或更高版本,则可以使用HTTP Event Collector通过HTTP发送事件,从而获得更好的性能。您可以将我们的Splunk logging for JavaScript库与browserify结合使用,有关更多详细信息,请参见此GitHub issue。