本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
SkyWalking-Python:Apache SkyWalking 的 Python 代理,为 Python 项目提供原生追踪能力。
SkyWalking:一款应用性能监控(APM)系统,专为微服务、云原生和基于容器(Docker、Kubernetes、Mesos)的架构设计。
,提供自动和手动埋点两种方式,并内置对主流 Python 框架的插件支持。
sw-python 命令行工具实现零代码侵入式集成Python 代理模块已发布至 PyPI,可通过 pip 安装:
# 安装最新版本,使用默认 gRPC 协议上报数据至 OAP pip install "apache-skywalking" # 安装最新版本,使用 HTTP 协议上报数据至 OAP pip install "apache-skywalking[http]" # 安装最新版本,使用 Kafka 协议上报数据至 OAP pip install "apache-skywalking[kafka]" # 安装指定版本 x.y.z # pip install apache-skywalking==x.y.z pip install apache-skywalking==0.1.0 # 示例:安装 0.1.0 版本
SkyWalking Python Agent 提供便捷的 Dockerfile 和镜像,利用其自动引导能力实现轻松集成。您可以基于代理启用的 Python 镜像构建 Python 应用镜像,并自动启用 SkyWalking Agent 运行应用。详细构建和配置说明请参考 dockerfile 指南。
请参考 FAQ。
如需试用尚未发布的最新特性,请参考 指南 从源代码构建。
默认情况下,SkyWalking Python Agent 使用 gRPC 协议上报数据至 SkyWalking 后端。SkyWalking 后端中,gRPC 协议端口为 11800,HTTP 协议端口为 12800,请根据使用的协议配置 collector_address(或环境变量 SW_AGENT_COLLECTOR_BACKEND_SERVICES)。
SkyWalking Python Agent 支持无需修改代码即可运行和附加到应用。安装包提供 sw-python 命令行工具,可通过以下方式运行 Python 应用:
sw-python run python abc.py # 或 sw-python run program arg0 arg1
生产环境使用前,请阅读 CLI 指南 获取详细介绍。如需要,也可使用以下传统集成方式。
如需使用 gRPC 协议上报数据,配置 collector_address(或环境变量 SW_AGENT_COLLECTOR_BACKEND_SERVICES)为 <oap-ip-or-host>:11800,例如 127.0.0.1:11800:
from skywalking import agent, config config.init(collector_address='127.0.0.1:11800', service_name='your awesome service') agent.start()
如需使用 HTTP 协议上报数据,配置 collector_address(或环境变量 SW_AGENT_COLLECTOR_BACKEND_SERVICES)为 <oap-ip-or-host>:12800,例如 127.0.0.1:12800:
注意:需安装带有
http额外依赖的版本:pip install "apache-skywalking[http]"
from skywalking import agent, config config.init(collector_address='127.0.0.1:12800', service_name='your awesome service') agent.start()
如需使用 Kafka 协议上报数据,配置 kafka_bootstrap_servers(或环境变量 SW_KAFKA_REPORTER_BOOTSTRAP_SERVERS)为 kafka-brokers,例如 127.0.0.1:9200:
注意:需安装带有
kafka额外依赖的版本:pip install "apache-skywalking[kafka]"
from skywalking import agent, config config.init(kafka_bootstrap_servers='127.0.0.1:9200', service_name='your awesome service') agent.start()
此外,也可通过环境变量(如 SW_AGENT_NAME、SW_AGENT_COLLECTOR_BACKEND_SERVICES 等)传递配置,无需调用 config.init。所有支持的环境变量可参考 此处。
Python Agent 能够将收集的日志上报至后端(SkyWalking OAP),实现日志与追踪关联。详细指南请参考 日志上报文档。
内置插件支持对 Python 库的自动 instrumentation(如 http.server、Flask、Django 等),完整列表可参考 此处。
除了支持自动 instrumentation 的 库 外,还提供手动埋点 API。
以下代码片段展示如何创建入口 span、出口 span 和本地 span:
from skywalking import Component from skywalking.trace.context import SpanContext, get_context from skywalking.trace.tags import Tag context: SpanContext = get_context() # 获取追踪上下文 # 创建入口 span,使用 `with` 语句,span 在进入/退出上下文时自动开始/停止 with context.new_entry_span(op='[***] as span: span.component = Component.Flask # 退出 `with` 上下文时 span 自动停止 class TagSinger(Tag): key = 'Singer' with context.new_exit_span(op='[***] peer='localhost:8080', component=Component.Flask) as span: span.tag(TagSinger('Nakajima')) with context.new_local_span(op='[***] as span: span.tag(TagSinger('Nakajima'))
from time import sleep from skywalking import Component from skywalking.decorators import trace, runnable from skywalking.trace.context import SpanContext, get_context @trace() # 操作名默认为方法名('some_other_method') def some_other_method(): sleep(1) @trace(op='awesome') # 自定义操作名为 'awesome' def some_method(): some_other_method() @trace(op='async_functions_are_also_supported') async def async_func(): return 'asynchronous' @trace() async def async_func2(): return await async_func() @runnable() # 跨线程传播 def some_method(): some_other_method() from threading import Thread t = Thread(target=some_method) t.start() context: SpanContext = get_context() with context.new_entry_span(op=str('[***] as span: span.component = Component.Flask some_method()
***,按照回复订阅邮件列表skywalking 频道。如链接无效,可在 Apache INFRA WIKI 查找最新链接提交拉取请求或推送提交前,请阅读我们的 贡献指南 和 开发者指南。
请查看 FAQ 页面 或在其中添加常见问题。
Apache 2.0

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429