首页 文章 精选 留言 我的

精选列表

搜索[Angel PowerFL 安全联合计算],共10000篇文章
优秀的个人博客,低调大师

智能家居行业 与“互联网+”联合构建新生态

智能家居是目前互联网巨头最感兴趣的“互联网+”领域之一,近期国内外巨头加速布局智能家居的相关催化剂不断。Google在在上周I/O大会推出了转为智能家居产品研发的Android系统。苹果公司在下周的WWDC大会上预计也会推出新的IOS9系统,其中的一大亮点是HomeKit智能家居模块。智能家居是一个具备巨大想象空间的领域,但产业发展阶段仍属于早期(类似TeslaModelS问世前的新能源汽车),目前看市场预期其离杀手级应用产品问世的临界点正越来越近,具备较好的题材性。 智能家居是目前互联网巨头最感兴趣的“互联网+”领域之一,近期国内外巨头加速布局智能家居的相关催化剂不断。Google在在上周I/O大会推出了转为智能家居产品研发的Android系统。苹果公司在下周的WWDC大会上预计也会推出新的IOS9系统,其中的一大亮点是HomeKit智能家居模块。智能家居是一个具备巨大想象空间的领域,但产业发展阶段仍属于早期(类似TeslaModelS问世前的新能源汽车),目前看市场预期其离杀手级应用产品问世的临界点正越来越近,具备较好的题材性。 本文转自d1net(转载)

优秀的个人博客,低调大师

阿里云可观测联合 Datadog 发布 OpenTelemetry Go 自动插桩工具

作者:杨易(青风) 在云原生可观测性领域,OpenTelemetry 已经成为事实上的标准。相比于 Java 拥有成熟的字节码增强技术,Go 语言作为静态编译型语言,长期以来缺乏一种成熟、低侵入的自动插桩方案。目前的现有方案主要有: eBPF:功能强大但主要偏向系统调用层面,对应用层上下文(如 HTTP Header 传播)的处理较为复杂。 手动埋点:代码改动大,维护成本高,不仅要改业务代码,还得改依赖库的调用方式,显式地在各个关键节点添加 Trace 和 Metrics 逻辑。 为此,阿里云可观测团队和程序语言团队 探索了 Go 编译时插桩解决方案,并将其核心能力捐赠给 OpenTelemetry 社区,形成了 opentelemetry-go-compile-instrumentation [ 1] 项目。在和 Datadog、Quesma 等公司的共同努力下,我们发布了首个预览版本 v0.1.0 [ 2] 。 工作原理 自动插桩工具的核心在于利用 Go 编译器的 -toolexec 参数。-toolexec 会拦截 Go 编译命令,替换成我们的插桩工具。这样,在代码被编译之前,我们就有机会对它进行分析和修改。整个过程可以概括为两个阶段: 1. 依赖分析 在编译开始前,工具会分析应用的构建流程(go build -n),识别出项目中使用的第三方库如 net/http, grpc, redis 等。然后,它会自动生成一个文件otel.runtime.go,将对应的 Hook 代码(监测逻辑,后面用 Hook 代码表示)引入到构建依赖中。 2. 代码注入 当编译器处理目标函数时,工具利用 -toolexec 拦截编译,然后修改该目标函数的代码,在函数入口插入一段蹦床代码(Trampoline Code),蹦床代码会跳转到预先写好的 Hook 函数中。 进入函数前(Before):Hook 记录开始时间,提取上下文信息(如 HTTP Headers),启动 Span。 函数执行:执行原有的业务逻辑。 退出函数后(After):Hook 捕获返回值或 Panic,结束 Span,记录耗时。 这种方式的优点是零运行时开销(除了必要的监测逻辑执行时间),因为插桩是直接编译进二进制文件的,不需要像 eBPF 那样在内核态和用户态之间切换,也不需要像 Java Agent 那样在启动时加载。 HTTP 插桩示例 让我们通过一个简单的 HTTP 例子来看看它是如何使用的。 package main import ... func main() { http.HandleFunc("/greet", func(w http.ResponseWriter, r *http.Request) { w.Write([ ]byte("Hello, OpenTelemetry!")) }) log.Fatal(http.ListenAndServe(":8080", nil)) } 手动插桩 需要手动引入 OpenTelemetry SDK,手动创建 Tracer,在 Handler 里手动 Start 和 End Span。 package main import ... func initTracer() func(context.Context) error { /* ...几十行初始化代码... */ } func main() { // 1. 初始化 Tracer shutdown := initTracer() defer shutdown(context.Background()) // 2. 包装 Handler handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // 3. 手动提取 Context,开始 Span tracer := otel.Tracer("demo-server") ctx, span := tracer.Start(r.Context(), "GET /greet") // 4. 确保结束 Span defer span.End() // 5. 可能还需要手动记录属性 span.SetAttributes(attribute.String("http.method", "GET")) w.Write([]byte("Hello, OpenTelemetry!")) }) // 6. ListenAndServe 也可能需要包装... log.Fatal(http.ListenAndServe(":8080", handler)) } 对于成百上千个接口的微服务,这种改造成本是灾难性的。 自动插桩 下载工具:到 Release 页面 [ 2] 下载 编译应用:./otel-linux-amd64 go build -o myapp 配置运行:export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317" export OTEL_SERVICE_NAME="my-app" ./myapp 编译器会默默地将 HTTP 请求的监测逻辑"织入"到应用二进制文件中。配置好 OpenTelemetry 的导出端点(如 Jaeger 或控制台),运行生成的 server。访问 /greet 接口时, Tracing 数据已经自动生成并上报了,包含了请求路径、耗时、状态码等信息。 从商业化到开源 我们在深度实践 eBPF 技术的过程中,虽然认可其强大,但也发现它难以完美处理应用层上下文。更重要的是,我们不断听到用户反馈,大家对繁琐的手动埋点和高昂的维护成本感到困扰。 为了解决这个痛点,我们开始探索 Go 编译时自动插桩方案,将其上线至阿里云可观测 ARMS 产品 [ 3] ,在这片最严苛的"试验田"里不断迭代,逐步演化成一套成熟的解决方案,不仅能实现零代码修改的链路追踪,还扩展支持了丰富的指标统计、Runtime 监控乃至持续剖析等高级功能,甚至还可以通过自定义扩展的功能完成对企业内部 sdk 的埋点 [ 4] 。 调用链分析 持续剖析 这套方案在电商、短剧、AI 视频、汽车等众多领域客户处得到了成功验证。在看到它为用户带来巨大价值、并验证了其稳定性和可行性后,我们决定将其核心能力贡献给 OpenTelemetry 社区,希望它能成为一个普惠的技术。同时,我们与可观测领域的顶尖厂商 Datadog 协作,共同推进,最终促成了这个官方项目 [ 1] 的诞生。 目前项目处于活跃开发阶段,欢迎大家试用、反馈并参与贡献,共同构建更美好的云原生可观测生态。 相关链接: [1] OpenTelemetry Go 编译插桩项目 https://github.com/open-telemetry/opentelemetry-go-compile-instrumentation [2] Release 链接 https://github.com/open-telemetry/opentelemetry-go-compile-instrumentation/releases/tag/v0.1.0 [3] 阿里云 ARMS Go Agent 商业版 https://help.aliyun.com/zh/arms/application-monitoring/user-guide/monitoring-the-golang-applications [4] 自定义扩展 https://help.aliyun.com/zh/arms/application-monitoring/use-cases/use-golang-agent-to-customize-scalability

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册