学会像专业人士一样监控你的 Python 应用程序!

在这个易于跟随的教程中,你将学习如何使用分布式追踪来监控你的 Python 应用程序。

你将学到什么:✨

  • 如何在 Python 中构建微服务 🐍。

  • 为微服务设置 Docker 容器 📦。

  • 配置 Kubernetes 以管理微服务。

  • 集成追踪后端以可视化追踪信息 🕵️‍♂️。

准备好提升你的 Python 应用程序监控技能了吗? 🔥


设置说明

🚨 在本博客的这一部分,我们将构建一个示例 Python 微服务应用程序。如果你已经有一个应用程序并且在跟随教程,可以跳过这部分。

创建你的应用程序的初始文件夹结构,如下所示。 👇

mkdir python-microservices && cd python-microservices
mkdir src && cd src
mkdir microservice1 microservice2

设置服务器 🖥️

为了演示,我将创建两个相互通信的微服务,最终我们可以用它来可视化分布式追踪。

构建和 Docker 化微服务 1

/microservice1 目录下,创建一个新的 Python 虚拟环境,安装必要的依赖项,并初始化一个 Flask 应用程序。

🚨 我假设你是在 Unix 系统上进行操作。如果你是在 Windows 系统上,一些命令会有所不同。

cd microservice1
python -m venv .venv
source .venv/bin/activate

💡 如果你使用的是 fish shell,请运行以下命令来激活虚拟环境。

source .venv/bin/activate.fish

安装所需的依赖项:

pip install Flask requests

获取已安装的依赖项列表,并将其保存到 requirements.txt 文件中,以便我们稍后在容器中安装这些依赖项。

pip freeze > requirements.txt

创建一个名为 app.py 的新文件,并添加以下代码:

# 👇 src/microservice1/app.py
import socket
import requests
from flask import Flask, jsonify, render_template
​
app = Flask(__name__)
​
def user_os_details():
    hostname = socket.gethostname()
    hostip = socket.gethostbyname(hostname)
    return hostname, hostip
​
@app.route("/")
def index():
    return "<p>Welcome to Flask microservice 1</p>"
​
@app.route("/health")
def health():
    return jsonify(status="Microservice 1 Running...")
​
@app.route("/get-users")
def get_users():
    response = requests.get("http://microservice2:5001/get-gh-users")
    return render_template("index.html", users=response.json())
​
@app.route("/os-details")
def details():
    host_name, host_ip = user_os_details()
    return jsonify(hostname=host_name, hostip=host_ip)
​
if __name__ == "__main__":
    app.run("0.0.0.0", 5000)

💡 如果你注意到了,我们从 http://microservice2:5001/get-gh-users 请求数据。你可能会问,这个 microservice2 是什么?实际上,我们可以在 Docker 的同一网络中使用服务名称作为主机名。我们稍后会在完成编写和 Docker 化这个微服务后来构建这个服务。

如你所见,这是一个非常简单的 Flask 应用程序,包含几个端点。user_os_details() 函数用于获取机器的 主机名IP 地址

@app.route("/")@app.route("/health") 装饰器定义了 Flask 应用程序的根路径和

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幻想多巴胺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值