elasticsearch 弹性APM不同的索引名,elasticsearch,.net-core,kibana,elastic-stack,elastic-apm,elasticsearch,.net Core,Kibana,Elastic Stack,Elastic Apm" /> elasticsearch 弹性APM不同的索引名,elasticsearch,.net-core,kibana,elastic-stack,elastic-apm,elasticsearch,.net Core,Kibana,Elastic Stack,Elastic Apm" />

elasticsearch 弹性APM不同的索引名

elasticsearch 弹性APM不同的索引名,elasticsearch,.net-core,kibana,elastic-stack,elastic-apm,elasticsearch,.net Core,Kibana,Elastic Stack,Elastic Apm,几周前,我们在kubernetes集群上运行的dotnet核心应用程序中添加了filebeat、metricbeat和apm。 它工作得很好,最近我们发现filebeat和metricbeat能够根据几个规则编写不同的索引 我们希望对APM执行同样的操作,但是我们找不到任何选项来设置要写入的索引的名称 这可能吗?如果可能,它是如何配置的 我还尝试在代码库中查找当前名称apm-*,但在配置时找不到任何匹配项 我们要解决的问题是,kibana中的每个空间都可以看到每个应用程序的apm度量。某些应用程

几周前,我们在kubernetes集群上运行的dotnet核心应用程序中添加了filebeat、metricbeat和apm。 它工作得很好,最近我们发现filebeat和metricbeat能够根据几个规则编写不同的索引

我们希望对APM执行同样的操作,但是我们找不到任何选项来设置要写入的索引的名称

这可能吗?如果可能,它是如何配置的

我还尝试在代码库中查找当前名称
apm-*
,但在配置时找不到任何匹配项

我们要解决的问题是,kibana中的每个空间都可以看到每个应用程序的apm度量。某些应用程序不应该在这个空间内,因此我认为一个新的
apm应用程序-*
索引可以解决这个问题

编辑 因为它不应该在代理上配置,而是在云服务控制台中配置。我很难“用户覆盖”我喜欢的设置

我想要的规则是:

  • 当应用程序不在kubernetes命名空间内时,写入名为apm-7.8.0-application-type-2020-07的索引
  • 其他名称空间中的所有其他应用程序都应保留在默认索引中
  • 我知道您可以添加
    output.elasticsearch.index
    来实现这一点:
    支持条件和格式化字符串的索引选择器规则数组。

    我尝试了复制metricbeat的相同版本,并将其更新为使用apm语法,并得出以下“用户覆盖”

    output.elasticsearch.indices:
    - index: 'apm-%{[observer.version]}-%{[kubernetes.labels.app]}-%{[processor.event]}-%{+yyyy.MM}'
      when:
        not:
          or:
            - equals:
                kubernetes.namespace: default
            - equals:
                kubernetes.namespace: kube-system
    
    
    但当我使用此设置时,它会告诉我:

    Your changes cannot be applied
    'output.elasticsearch.indices.when': is not allowed
    
    Set output.elasticsearch.indices.0.index to apm-%{[observer.version]}-%{[kubernetes.labels.app]}-%{[processor.event]}-%{+yyyy.MM}
    Set output.elasticsearch.indices.0.when.not.or.0.equals.kubernetes.namespace to default
    Set output.elasticsearch.indices.0.when.not.or.1.equals.kubernetes.namespace to kube-system
    
    

    然后我更新了示例,但得出了相同的结论,因为它也无效。

    在ES Cloud控制台中,您需要编辑群集配置,滚动到APM部分,然后单击“用户覆盖设置”。在其中,可以通过添加以下属性覆盖目标索引:

    output.elasticsearch.index: "apm-application-%{[observer.version]}-{type}-%{+yyyy.MM.dd}"
    

    请注意,如果更改此设置,还需要修改相应的索引模板以匹配新的索引名称。

    您的APM服务器是否直接输出到elasticsearch?索引名在.Yes中定义,@leandrojmp是正确的,.NET代理本身不控制索引名,这是在APM服务器中完成的,链接文档对此进行了解释。我在.NET代理公司工作。啊,我明白了!我们正在使用弹性云解决方案。所以我们还没有设置APM服务器本身的配置。是否仍有更新此配置的方法?使用更具体的输出更新了问题我希望使用此解决方案,我还可以添加
    When
    条件规则?我希望我的应用程序使用特定的模板:
    apm-%{[observer.version]}-application-%{+yyyy.MM}
    ,而系统组件(位于不同的kubernetes命名空间中)使用系统默认的
    apm-%{[observer.version]}-%{+yyyy.MM.dd}
    我已经用我想要的更具体的输出更新了我的问题:)@Baklap4找到了解决方案吗?我们有一个APM服务器&希望有多个应用程序(APM代理)将度量发送到同一个APM服务器。我们希望每个应用程序将数据输出到不同的ElasticSearch索引。@Kalmesham目前没有解决方案。在弹性体一侧打开内部票据。一旦事情解决了,他们应该会回来找我,但我现在什么也没听到。不过,新的云控制台UI看起来很有希望