安东尼奥·伯本是一名现场工程师solo.io在Gloo网(使用Istio)和Gloo边缘(代表)。他是Kubernetes的狂热爱好者,他最喜欢的一句话是:“我愿意去任何地方,只要它是向前的。”你可以找到安东尼奥,跟着他走推特.
Kim Uyttebrouck是一位经验丰富的领导者,在职业和个人生活中都有与成功团队合作的良好记录。他是一位来自比利时鲁汶的DevOps爱好者,喜欢学习新技术。在他的空闲时间,他训练短距离铁人三项。
你真的知道你的客户在寻找什么吗?
发现新的商业机会的一种方法是分析您的系统,收集您真正需要的东西,并通过一个全面的图表将其可视化!
日志跟踪是一个很好的开始,因为它们通常包含关于客户兴趣的有用信息。你只需要变换它们。
这篇博文将向您展示如何将Promtail收集的Istio访问日志中的原始数据转换为可视化的有价值的指标Grafana云.
的场景
你的电子商务平台销售不同的袜子。客户可以根据个人兴趣筛选袜子目录。你想知道哪双袜子被“正式”和“极客”过滤得最多。
你的架构看起来是这样的:
实际设置!
先决条件:
- Kubernetes集群-例如。种类
- Istioctl(本例使用1.12.1版本)
- 舵
- Grafana云免费帐户
首先,让我们设置你的Grafana云堆栈:
- 创建一个免费Grafana云帐户如果你还没有的话。
- 使用现有凭证(谷歌,Github等)注册,创建您的帐户,并在Grafana云门户上获得自己的堆栈。
- 您还需要创建一个Grafana云API密钥参数推送权限!
- 点击Prometheus旁边的“Send Metrics”,导航到Grafana Cloud的Prometheus配置页面。
- 滚动以找到密码/API密钥部分。
- 点击蓝色文本“Generate now”。在新窗口中,确保在创建API密钥时从下拉角色列表中选择“MetricsPublisher”。
重要提示:Grafana Cloud的Prometheus配置页面还包含以下必需的信息,以便能够将Prometheus度量发送到Grafana Cloud:
- 远程写端点
- 用户名/实例ID
导航回Grafana云传送门,点击Loki旁边的“发送日志”。
在“Using Grafana with Logs”页面,滚动找到Grafana Data Source设置。部署Promtail时需要User值。
现在,在Kubernetes集群上安装Helm存储库。
Helm repo添加grafana https://grafana.github.io/helm-charts Helm repo添加bitnami https://charts.bitnami.com/bitnami Helm repo更新
安装Istio操作符。
itioctl操作符init kubectl apply -f - <
等待Istio启动并运行。
安装socks -shop应用程序。您可以阅读有关应用程序设计的更多信息在这里.
Kubectl create ns sock-shop Kubectl label namespace sock-shop istio-injection=enabled——override Kubectl -n sock-shop apply -f https://raw.githubusercontent.com/microservices-demo/microservices-demo/master/deploy/kubernetes/complete-demo.yaml
验证是否所有吊舱都注入了Istio。(每个微服务舱应该显示一个额外的容器,即Istio sidecar。)
Kubectl得到豆荚-n袜子店
部署Istio网关和虚拟业务。
kubectl apply -f - <
打开通往Istio入口网关(=服务网格入口点)的隧道,以访问sock-shop应用程序。
Kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80
袜子商店应用程序现在可以在http://localhost:8080上获得
使用remote_write配置安装Prometheus。
所需详情见Grafana Cloud的普罗米修斯度量文档(请参见先决条件部分)。
export GC_PROMETHEUS_USERNAME=< my-grafana-cloud-api-key> export REMOTE_WRITE_ENDPOINT=< my-grafana-cloud-api-key> kubectl create ns logging kubectl create secret generic kubepromsecret \——from-literal=username=${GC_PROMETHEUS_USERNAME} \——from-literal=password=${GC_API_KEY} \ -n logging helm upgrade——install prometheus- n logging bitnami/kube-prometheus——version 6.6.0 -f - <
安装Promtaildaemonset。
export GC_LOKI_USER= export GC_API_KEY= export GC_LOKI_URL= kubectl create secret generic kubelokisecret \——from-literal=username=${GC_LOKI_USER} \——from-literal=password=${GC_API_KEY} \ -n logging helm upgrade——install promtail -n logging grafana/promtail——version 3.8.1 -f - <极客)"—regex:表达式:^。* \ / category.html \ ?标签= (? P <过滤器>正式)"—labels: filter:—metrics: filter: prefix: 'analytics_' type: Counter description: "Total count of filtered results" source: filter config: action: inc serviceMonitor: enabled: true namespaceSelector: {} annotations: {} labels: {} interval: 10s scrapeTimeout: 5s EOF . txt
Prometheus和Promtail都可以移植。
Kubectl -n logging port-forward svc/prometheus-kube-prometheus-prometheus 9090:9090 Kubectl -n logging port-forward ds/promtail 9080:9080
Grafana仪表盘
让我们在网站上浏览目录,同时过滤,看看几双袜子。”正式的或"极客(这将创建所需的流量)。
打开浏览器http://localhost:9080/metrics以咨询Promtail指标。搜索analytics_filter相关条目。
在http://localhost:9090执行时,Prometheus将在图部分中可视化度量analytics_filter.这些条目被转发到Grafana Cloud。
附注:在本文中创建设置的另一种方法是使用Grafana代理它捆绑了Prometheus发现、WAL和remote_write功能,而没有本地TSDB,还捆绑了Promtail。请查看Grafana代理快速入门指南.
让我们在Grafana Cloud上查阅数据!在Grafana云门户上,您可以通过单击“登录”登录到Grafana并开始使用它。在Grafana General/Home页面上,您可以创建一个新的仪表板来可视化生成的指标。
让我们通过单击“add a new panel”向新创建的仪表板添加一个面板。
接下来,定义一个查询。从“数据源”下拉菜单选择Grafanacloud -< your-grafana-cloud-stack-name >-prom设置普罗米修斯为数据源。
几乎完成了。定义您的查询,并可能给面板一个标题。在这里你可以使用:
Sum (rate(analytics_filter[30s])) by (filter)
点击“应用”(页面右上角)。给你!
您可以添加另一个面板来可视化日志。选择Grafanacloud -< your-grafana-cloud-stack-name >-logs设置洛基为数据源。选择表格或日志作为可视化,并定义您的查询,例如{filter= " geek "}。
最终的想法
所以最后的结果可以让你了解“正装”和“极客”袜子的趋势。这些指标的可视化肯定会帮助你更好地了解客户在寻找什么,并指导你做出更好的业务决策,从而产生更多的收入。
如何用Gloo Edge和Grafana将应用程序日志转换为有用的指标是一个真正的用例故事,Promtail是由Gloo边缘来查找它的一个组件:ExtAuth上的极端情况。度量用于发出错误配置的信号并发出警报。
了解了这种方法,您就可以利用相同的设置从日志中获取指标,而不仅仅是获得某种分析,还可以更好地理解系统如何为DevOps工作。