您的位置 首页 java

Azure上的Java:监视和扩展容器化的应用程序

了解应用程序的运行状况至关重要。如果您的服务不可用,则可能会降低生产力并延误其他流程。您可以通过多种方式跟踪应用程序的可用性。AzureMonitor提供了一种收集和分析有关应用程序性能和事件的信息的方法。AzureMonitor收集诸如度量标准(数字数据)和日志(由不同类型数据的属性集合构成的数据)之类的信息。ApplicationInsights提供数据的可视化。

AzureMonitor已经收集了有关您添加的服务的一些信息。此外,它支持从Prometheus收集信息。Prometheus是CloudNativeComputingFoundation的流行解决方案,用于从应用程序收集指标。

添加ApplicationInsights代理

ApplicationInsights可以监视您的AKS应用程序,而无需对源代码进行任何更改。要将ApplicationInsights添加到您的应用程序中,请将ApplicationInsights代理添加到您的项目中。

然后,将ApplicationInsights资源添加到您的Azure帐户。为此,请在portal. Azure .com中,在搜索栏中键入“ApplicationInsights”,然后从结果中选择它。

选择它之后,您将看到您的ApplicationInsights资源列表。此列表可能为空。要创建新资源,请单击+创建按钮。ApplicationInsights提示您选择资源组并为新资源提供名称。从菜单中选择一个资源组,然后输入描述性名称。然后单击“审阅+创建”。

Azure门户执行验证步骤。验证后,点击创建。几秒钟后,Azure门户将创建资源。如果返回到“ApplicationInsights”资源列表,那么您的新资源就在那里。如果选择它,将显示其详细信息。感兴趣的元素是详细信息右侧的“连接字符串”。您将需要该信息。

ApplicationInsights使用Java代理来捕获日志记录。Java代理是使用Java工具API拦截调用的特殊类。这使我们无需修改代码即可添加ApplicationInsights支持。下载ApplicationInsights jar ,并记下保存它的位置。要将jar添加到项目中,请使用 maven 命令行工具。

 mvn  install:install-file
 -Dfile=/path-to-downloaded-file/applicationinsights-agent-3.0.2.jar
 -DartifactId="applicationinsights-agent" -Dpackaging=jar
 -Dversion="3.0.2"
 -DgroupId="com.microsoft"12345复制代码类型:[java]  

另外,添加一个名为applicationsinsights-agent-3.0.2. JSON 的文件。JSON文件的内容为:

 {
"connectionString": "InstrumentationKey=..."
}123复制代码类型:[java]  

在Azure门户中查看ApplicationInsight的资源时,会看到要应用于connectionStrings元素的实际值。配置和重新部署应用程序后,ApplicationInsights会自动记录您的应用程序通过java.util.logging发出的信息以及来自其他日志记录实用程序的信息。

为应用程序见解检测应用程序并对其进行部署后,就可以通过Azure门户查看该应用程序的指标和日志记录。若要开始查看应用程序的指标,请从Azure门户中打开“应用程序见解”。选择您的应用程序,然后选择一种度量标准以图形方式查看度量。

由于Azure为Java应用程序提供了用于日志记录和收集指标的本机支持,因此开始进行日志记录无需花费太多精力。Azure收集的一些指标会自动收集。Azure与流行的库集成在一起,用于管理应用程序中的登录。这包括 Log4j ,使用Java简单日志记录外观(SLF4J)的解决方案以及内置的java.util.logging功能。

自定义日志

您可以配置其他选项以通过应用程序见解配置文件(applicationinsights-agent-3.0.2.json)进行日志记录。默认情况下,ApplicationInsights会捕获INFO级别或更高级别的所有日志记录。如果您只关心标记为WARN或更高级别的日志记录,请在配置文件中使用以下内容进行指定。

 {
  "instrumentation": {
    "logging": {
      "level": "WARN"
    }
  }
}1234567复制代码类型:[java]  

该配置可以为事务指定采样百分比以降低成本。例如,如果抽样百分比为20%,则执行的交易的20%会记录其详细信息。在配置中,使用以下元素指定采样率。

 {
  "sampling": {
    "percentage": 20
  }
}12345复制代码类型:[java]  

虽然ApplicationInsights自动收集许多指标,但您使用的Java组件还提供了其他指标。要捕获这些指标,您必须知道对象的名称和属性以获取要捕获的其他指标。要查找此信息,您可能需要使用其他工具,例如JDKMissionControl。获得此信息后,将其添加到配置文件中名为的元素中 jmx Metrics。该元素列出了指定对象名称,属性和名称的对象,这些名称,属性和名称将在ApplicationInsights控制台中用作标签。

 "jmxMetrics": [
      {
        "name": "Thread Count",
        "objectName": "java.lang:type=Threading",
        "attribute": "ThreadCount"
      }
]1234567复制代码类型:[java]  

可自定义应用程序日志记录的其他几个方面。您可以从此处阅读有关配置无代码应用程序监视和日志的更多信息。

应用扩展

您可以使用AzureMonitor来响应需求来扩展应用程序。通过根据需求扩展,可以最大程度地减少资源使用,而不会影响性能。当应用程序的使用模式不可预测或您不完全了解它们时,自动缩放将特别有用。为了扩展AzureKubernetes应用程序,“节点池”设置提供了两个选项。对于手动缩放,请选择实例化的节点数。对于自动缩放,请选择最小和最大节点数。AKS自动更改节点数。

Azure在一段时间内会根据平均指标响应扩展需求。默认情况下,平均超过45分钟,但是在CloudShell中,用于Kubernetes的时间是可调整的。

结论

在本系列的下一部分中,我们将研究您的应用程序如何知道其正在使用中。我们还将研究Azure如何通过其服务和免费代码库提供支持以对用户进行身份验证。

文章来源:智云一二三科技

文章标题:Azure上的Java:监视和扩展容器化的应用程序

文章地址:https://www.zhihuclub.com/180786.shtml

关于作者: 智云科技

热门文章

网站地图