使用微服务应用程序

本文介绍了如何使用 Instana 微服务应用程序监控功能来监控 VMware Tanzu

“ VMware Tanzu ”基金会在 Instana 基础设施地图中的位置

Instana VMware Tanzu 的微服务应用监控完全自动化。 安装完成后, Instana 代理程序将部署到 VMware Tanzu 平台上的所有受支持的虚拟机中。

alt-text="完整的 VMware Tanzu 基础架构位于 Instana , Cloud Foundry 应用程序会自动被发现并受到监控。" Instana 的基础设施地图为最终用户提供了强大的工具,帮助其理清复杂或大规模部署的脉络:

  • Dynamic Focus 是一款功能强大、功能齐全的编辑器,能够同时搜索多个数据上下文;有关如何使用 Dynamic Focus 的更多信息,请参阅 Dynamic Focus 文档( Instana )
  • 分组和视图是将大型基础设施划分为易于管理的组别的一种方式;如需了解更多信息,请参阅基础设施监控文档( Instana ),了解如何在基础设施地图中使用分组和视图

开箱即用的 Instana 微服务应用程序监控(适用于 VMware Tanzu )提供了以下与 BOSH 相关的标签,以帮助进行分组:

  • agent_bosh_release_version 提供了一种快捷方式,用于查询主机上部署的 BOSH 版本;BOSH 版本会与 Instana 上的 VMware Tanzu 版本保持同步升级,以便您更轻松地掌握 Instana 上的 VMware Tanzu 版本的更新状态
  • bosh_deployment对于熟悉 BOSH ( VMware Tanzu 的配置层)的 VMware Tanzu 运维人员而言, bosh_availability_zonebosh_instance_name、、和 都是一眼就能 bosh_instance_id 认出的数据。

有关如何使用 Instana 仪表板的更多信息,请参阅 Instana 文档

Cloud Foundry 《 Instana 》“应用视角”专栏中的应用案例

部署在 VMware Tanzu 基础架构上、并通过 Instana 的“ VMware Tanzu 微服务应用程序监控”磁贴进行监控的应用程序,将自动接受监控,其性能数据可在 Instana 的仪表板中随时查看。

alt-text="一个通过 Instana 微服务应用程序监控( VMware Tanzu )磁贴进行监控的 Node.js Cloud Foundry 应用程序。"

BOSH 部署的自动维护 Windows

Instana 组件可自动检测在 VMware Tanzu 平台上运行的 BOSH 部署,并自动创建、安排和取消维护时段。 如需了解有关 Instana “维护时间段( Windows )”功能的更多信息,请参阅“安排维护时间段”文档页面。

该磁贴的“自动维护” Windows 功能需要进行以下配置:

  • 后端连接 > API 端点 URL ,指向您在 Instana 中的租户单元。
  • 后端连接 > API 令牌需要一个具有(至少)该 Configuration of custom alerts 权限的 API 令牌;有关 API 令牌的更多信息,请参阅 “令牌 ”文档页面。

可以通过磁贴配置中的 “代理自动配置 > BOSH 的自动维护窗口 ”选项,禁用“自动维护”功能( Windows )。

要部署此更改,需在“ OpsManager ”中针对“ VMware Tanzu Application Service for VMs”或“ VMware Tanzu Kubernetes Grid ”磁贴运行 “应用更改 ”操作。

BOSH 部署的 Pipeline 反馈

重要信息: 管道反馈功能当前处于 试验性 状态。 在具有许多服务实例的基础上,每个实例通常都具有一个专用 BOSH 部署,这可能变得有点过于繁琐。 请让我们知道您的想法!

Instana 组件会自动检测在 VMware Tanzu 平台上运行的 BOSH 部署,并作为 Pipeline Feedback 功能的一部分 releases ,在 Instana 中报告这些部署。 如需了解有关“管道反馈”功能的更多信息,请参阅 “管道反馈 ”文档页面。

“BOSH 部署的管道反馈 ”功能需手动启用。 要启用此功能,请在 OpsManager 中进入“ Instana ”磁贴配置,然后启用 “Agent automatic configurations ”> [Experimental] Pipeline Feedback for BOSH 选项。 此外,请确保正确配置以下设置:

  • 后端连接 > API 端点 URL ,指向您在 Instana 中的租户单元。
  • 后端连接 > API 令牌需要一个具有(至少)该 Configuration of releases 权限的 API 令牌;有关 API 令牌的更多信息,请参阅 “令牌 ”文档页面。

要部署此更改,需在“ OpsManager ”中针对“ VMware Tanzu Application Service for VMs”或“ VMware Tanzu Kubernetes Grid ”磁贴运行 “应用更改 ”操作。

监控 BOSH Agent、Gorouter 及其他进程

Instana 自动监控 Cloud Foundry 和 Kubernetes 控制平面中重要进程的开箱即用CPU、内存和文件描述符使用情况。 我们特别探讨了以下问题:

  • BOSH 代理程序
  • BOSH DNS
  • Gorouter
  • 云控制器
  • kube-apiserver
  • kube-controller-manager
  • kube-scheduler

alt-text="一个由 Instana 开箱即用监控的Gorouter进程。"

更多关于如何使用 Instana 监控微服务的信息

有关如何使用 Instana 的高级跟踪和监控功能的更多信息,请参阅 Instana 文档

Cloud Foundry 应用程序的部署

Instana 针对 VMware Tanzu 的微服务应用监控旨在完全自动化 Cloud Foundry 应用及其服务的监控;在实现这一目标的过程中,根据推送的 Cloud Foundry 应用类型不同,某些情况下可能需要进行一些简单的配置操作。

部署 Java 应用程序

Java 应用程序的监控完全由 Instana 代理自动完成,该代理无需重启即可追踪 Java 应用程序。

使用 DotNet 核心构建包部署 DotNet 核心应用

Instana 的 VMware Tanzu 微服务应用程序监控支持通过以下步骤对非自包含的DotNet Core应用程序进行监控:

  • 通过执行以下命令,将 Instana NuGet 包添加到 Cloud Foundry 应用程序中:

    dotnet add myproject.csproj package Instana.Profiler.Linux.Bundled.Refs
     
  • 准备要发布的 DotNet Core 应用程序:

    dotnet publish -c Release
     
  • 将下列环境变量添加到应用程序清单:

    ---
    applications:
    - name: <application_name>
    path: bin/Release/netcoreapp3.1/publish/
    env:
      CORECLR_ENABLE_PROFILING: 1
      CORECLR_PROFILER: "{cf0d821e-299b-5307-a3d8-b283c03916dd}"
      CORECLR_PROFILER_PATH: "/home/vcap/app/instana_tracing/CoreProfiler.so"
      LD_LIBRARY_PATH: "/home/vcap/app/instana_tracing"
      DOTNET_STARTUP_HOOKS: "/home/vcap/app/Instana.Tracing.Core.dll"
     

请注意, path 该变量的值可能会因所使用的.NET Core SDK以及通过 标志 dotnet publish -c Release-c 传递给 的配置名称而有所不同,在本例中该配置名称为 Release

  • 使用 cf push 命令推送 Cloud Foundry 应用程序:

    cf push
     

上述 cf push 命令假设应用程序的 manifest.mf 文件位于执行该 cf push 命令的文件夹中。 有关如何将 cf push 该命令与清单文件结合使用的更多信息,请参阅 “使用应用清单进行部署 ”页面。

使用 Node.js 构建包部署 Node.js 应用

注意: 提示: buildpack instana_buildpack 可以完全自动化此配置过程,且无需修改您的代码库。

唯一需要做的就是添加该包 @instana/collector ;请参阅 Instana Node.js 文档中的 “安装 ”部分。

使用 Python 构建包部署 Python 应用

注意: 提示: buildpack instana_buildpack 可以完全自动化此配置过程,且无需修改您的代码库。

监视 Python Cloud Foundry 应用程序需要执行以下步骤:

  • instana 包添加到 requirements.txt 文件

  • 将值为 instanaAUTOWRAPT_BOOTSTRAP 环境变量添加到应用程序清单中,如下所示

    ---
    applications:
    - name: test-python-flask
    buildpacks:
      - python_buildpack
    env:
      AUTOWRAPT_BOOTSTRAP: instana
     

使用 Ruby 构建包部署 Ruby 应用

注意: 提示: buildpack instana_buildpack 可以完全自动化此配置过程,且无需修改您的代码库。

唯一需要做的就是安装该 instana gem;请参阅 Instana Ruby 文档中的 “安装 ”部分。

Instana Cloud Foundry 构建包

要点: instana_buildpack Cloud Foundry buildpack 当前处于 试验性 状态。 instana_buildpack 的部署将在代理程序自动配置屏幕下的磁贴中选择性加入。

从 V1.177.0 开始,磁贴集成了 instana_buildpack Cloud Foundry buildpack,用于自动执行 Node.js、Python 或 Ruby Cloud Foundry 应用程序的 Instana 设置。 当 instana_buildpack 由 Cloud Foundry 应用程序清单选择性加入时,它会自动配置登台过程以在 Droplet(由 Cloud Foundry 运行的容器映像)中烘烤所有项(需要使用 Instana 来监视该 Cloud Foundry 应用程序)。

instana_buildpack 是所谓的 decorator buildpack,它将逻辑和资源添加到登台过程中,并且必须与实际启动 Cloud Foundry 应用程序实例的最终 buildpack 一起使用。 例如,下列命令行将使用 instana_buildpack 来对 Node.js 应用程序进行自动监视:

cf push -b instana_buildpack -b nodejs_buildpack
 

在应用程序 manifest.yml 中定义多个 buildpack 可以实现相同的目标,如下所示:

---
applications:
- name: test-nodejs
  buildpacks:
    - instana_buildpack
    - nodejs_buildpack
 

如需了解有关在推送 Cloud Foundry 应用时如何使用多个构建包的更多信息,请参阅《 使用多个构建包推送应用 》文档。

重要提示:instana_buildpack 构建包不得作为构建包序列中的最后一个构建包使用,否则会导致分阶段构建错误。

VMware Tanzu Kubernetes Grid 支持

VMware Tanzu Kubernetes Grid (原名 Pivotal Container Service (PKS) )是一款企业级 Kubernetes 平台,其架构旨在确保在任何基础设施上都能快速见效、灵活扩展并保持高可靠性。 如需了解有关 VMware Tanzu Kubernetes Grid 的更多信息,请访问 VMware Tanzu Kubernetes Grid 页面。

安装

Instana 中的“ VMware Tanzu 微服务应用程序监控”磁贴全面支持 VMware Tanzu Kubernetes Grid。 请参阅《 安装和配置适用于 VMware Tanzu 的 Instana 微服务应用程序监控》,了解如何安装适用于 VMware Tanzu 的 Instana 微服务应用程序监控磁贴。

在已安装 VMware Tanzu Kubernetes Grid 的基础设施中完成部署后, Instana 的 Kubernetes 监控功能将自动部署到由 VMware Tanzu Kubernetes Grid Service Broker创建的所有 Kubernetes 集群上。

Kubernetes 在“ Instana ”磁贴发布之前已存在的集群需要进行升级,才能接收“ Instana ”代理;有关如何通过 VMware Tanzu Kubernetes Grid 升级 Kubernetes 集群的更多信息,请参阅 “升级集群 ”页面。

配置

代理配置中针对磁贴所做的设置,将同时适用于在 BOSH 和 Kubernetes 上运行的代理; 有关可在代理级别设置哪些配置的概述,请参阅《安装和配置 VMware Tanzu 上的 Instana 微服务应用程序监控》页面。

Kubernetes Instana 中的集群

与所有其他受支持的 Kubernetes 版本和发行版一样,通过 VMware Tanzu Kubernetes Grid 创建的 Kubernetes 集群会在 Instana 的 Kubernetes 视图中显示。

alt-text="一个使用 VMware Tanzu Kubernetes Grid 在 Instana 上创建的 Kubernetes 集群。"

其他 Kubernetes 发行版所具备的所有功能, VMware Tanzu Kubernetes Grid 也同样具备。 “ Instana ” 模块会根据“ VMware Tanzu Kubernetes Grid ”模块中配置的 Pod 安全策略设置,自动配置代理程序的部署。

有关 Instana 如何监控 Kubernetes 的更多信息,请参阅 Instana 文档中的 Kubernetes 页面。