通过sdk查看oss投递(新版)延迟情况最佳实践

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 在投递任务中,日志服务会将运行日志写入到给定的logstore中,因而可以使用SDK来查看投递任务的当前状态,并进行批量查询,以了解多个Project和投递任务的状态。下面以查看oss投递的延迟为例,介绍客户提供操作步骤和常见的使用场景,以帮助客户更加方便地监控和管理投递任务。

操作流程

一、前提

  1.本文描述不做特殊说明,默认都是使用RAM账户登陆控制台更多创建或获取RAM用户信息操作,请参见准备RAM用户

  1. 请确保已具备使用OSS投递(新版)的权限。更多有关OSS投递权限的相关操作,请参考授权概述
  2. 请确保您已经有创建好的OSS投递任务。更多有关创建OSS投递任务的相关操作,请参考创建OSS投递任务(新版)
  3. 请确保您已经开通运行日志。更多关于运行日志的相关操作,请参考管理服务日志

二、数据投递概览查看投递任务进度落后状态

1.登录日志服务控制台

2.在Project列表区域,单击目标Project。

3.点击左侧任务管理 -> 数据投递新版 -> 特定oss投递(新版)任务

图片.png

4.浏览右侧数据投递概览 -> 进入落后

图片.png

说明 :

      进度落后的横轴表示时间,纵轴表示落后的秒数,右侧则是各个shard,图中天蓝色直线表示,shard#27在23/07/07 13:39时投递进度落后100.75k秒

三、internal-diagnostic_log中通过sql查询投递任务进度落后状态

说明:

     创建OSS投递任务后,投递过程中的内部日志信息会存储在internal-diagnostic_log logstore中, 通过分析该日志,您可以观测投递的状态 关于内部日志的详细字段信息,请参考日志类型

1.点击进度落后右上角  -> 预览查询语句

图片.png

2.右侧弹出预览查询语句方框 -> 点击查询分析  ·    图片.png

3.跳转至 Internal-diagnostic_log logstore , 右侧可选时间范围 -> 查询分析 , 下方预览图表的lags展示延迟情况

图片.png

说明 :

      该sql的中 (__topic__: etl_metrics and metric_type: ConnectorMetrics and "_etl_:connector_meta.action": ingest)and (project:your-project and job_name:job-test) 是搜索语句限定查询的范围,剩余sql为分析语句,用于聚合出精度精确到一分钟,某个shard的平均延时


图片.png

表示shard#5 存在119795.0s的延迟

四、通过sdk的GetLogs接口对internal-diagnostic_log中的内部日志进行查询

1.安装python aliyun log sdk , 如果需要其他语言的sdk请参考SDK参考概述

2.使用第三步中的sql,使用GetLogs查询延迟日志

importtimefromaliyun.logimportLogClient, GetLogsRequestendpoint=''accessKeyId=''accessKeySecret=''project='test-project'logstore='internal-diagnostic_log'logClient=LogClient(endpoint, accessKeyId, accessKeySecret)
end=time.time()
start=end-60query='''(__topic__: etl_metricsand metric_type: ConnectorMetricsand "_etl_:connector_meta.action": ingest)and (project:test-project and job_name:your_oss_sink_job_name)| select  *FROM  (    select      time_series(__time__, '1m', '%y/%m/%d %H:%i', '0') as dt,      "_etl_:connector_meta.task_name" as task,      avg("_etl_:connector_metrics.lags") as lags    FROM      log    group by      dt,      task    order by      dt    limit      100000  )where  task is not null '''request=GetLogsRequest(project, logstore, start, end, '', query=query, line=3, offset=0, reverse=False)
response=logClient.get_logs(request)
logs=response.get_logs()
forloginlogs:
print(log.log_print())

image.png


五、通过sdk批量查看多个logstore的投递延迟情况

1 假设当前到project 内有多个投递任务 ,多个投递任务的运行日志保存在当前project下的internal-diagnostic_log (请确保已开通运行日志)

image.png

2 利用sdk批量查询oss投递任务的名称

fromaliyun.logimportLogClientendpoint=""project=""logstore=""accessKeyId=""accessKeySecret=""logClient=LogClient(endpoint, accessKeyId, accessKeySecret)
# 利用sdk获取当前project下度所有导出任务listExportResponse=logClient.list_export(project)
exportTaskList=listExportResponse.get_exports()
# 将oss投递任务筛选出来oss_sink_export_list= []
forexportinexportTaskList:
ifexport.get("configuration", {}).get("sink", {}).get("type") =="AliyunOSS":
oss_sink_export_list.append(export)
# 获取所有oss投递job度名称oss_sink_job_name_list= []
foross_sinkinoss_sink_export_list:
oss_sink_job_name_list.append(oss_sink['name'])
forjob_nameinoss_sink_job_name_list:
print(job_name)


3 假设第2步中oss投递job名称列表是[job-168****360-*****1,job-168****360-*****2,job-168****360-*****3] , 那么查询的sql 可以是 :

(__topic__: etl_metrics
and metric_type: ConnectorMetrics
and"_etl_:connector_meta.action": ingest)and(project:changqi-test-0608and(job_name:job-168****360-*****1or job_name:job-168****360-*****2or job_name:job-168****360-*****2))|select*FROM(select time_series(__time__,'1m','%y/%m/%d %H:%i','0')as dt,"_etl_:connector_meta.task_name"as task, job_name as job_name, avg("_etl_:connector_metrics.lags")as lags
FROM log
groupby dt, job_name, task
orderby dt
limit100000)where task isnotnull


  1. 第3步中的sql可以利用sdk的Getlogs接口进行oss投递延时数据的查询
importtimefromaliyun.logimportLogClient, GetLogsRequestendpoint=''accessKeyId=''accessKeySecret=''project='test-project'logstore='internal-diagnostic_log'logClient=LogClient(endpoint, accessKeyId, accessKeySecret)
end=time.time()
start=end-60query='''(__topic__: etl_metricsand metric_type: ConnectorMetricsand "_etl_:connector_meta.action": ingest)and (project:test-project and (job_name:job-168****360-*****1 or job_name:job-168****360-*****2 or job_name:job-168****360-*****2))| select *FROM ( select time_series(__time__, '1m', '%y/%m/%d %H:%i', '0') as dt, "_etl_:connector_meta.task_name" as task,  job_name as job_name, avg("_etl_:connector_metrics.lags") as lags FROM log group by dt, job_name, task, order by dt limit 100000 )where task is not null  '''request=GetLogsRequest(project, logstore, start, end, '', query=query, line=3, offset=0, reverse=False)
response=logClient.get_logs(request)
logs=response.get_logs()
forloginlogs:
print(log.log_print())


异常信息说明

oss投递任务任务监控大盘异常

  出现查询失败和无数据展示的原因可能是任务运行日志索引被删除或未更新,或者未开通任务运行日志采集。解决方案包括在CloudLens for SLS中重置索引和开通任务运行日志采集。任务运行日志存储在指定Project下的internal-diagnostic_log Logstore中,可通过日志服务控制台查看,如果您在使用的过程中有如下异常,可以参考以下文档解决:

任务监控大盘异常处理

新版任务监控大盘常见问题

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
2月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1435 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
3月前
|
负载均衡 Java 对象存储
负载均衡策略:Spring Cloud与Netflix OSS的最佳实践
负载均衡策略:Spring Cloud与Netflix OSS的最佳实践
53 2
|
5月前
|
存储 JSON 自然语言处理
OSS数据源一站式RAG最佳实践
本文介绍了如何使用OpenSearch LLM智能问答版通过OSS数据源一站式构建RAG系统。
7170 11
|
5月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
7月前
|
安全 Go 开发工具
对象存储OSS产品常见问题之go语言SDK client 和 bucket 并发安全如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
146 9
|
7月前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
222 9
|
7月前
|
存储 移动开发 前端开发
对象存储oss使用问题之OSS SDK .net 使用下载例程报错如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
103 0
|
7月前
|
存储 运维 监控
运维编排最佳实践:将运维编排任务执行记录投递到OSS/SLS
运维编排服务(Operation Orchestration Service),简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从...
运维编排最佳实践:将运维编排任务执行记录投递到OSS/SLS
|
7月前
|
存储 分布式计算 监控
操作审计最佳实践:将阿里云操作日志持续投递到您的 SLS/OSS
操作审计(ActionTrail)帮助您监控并记录阿里云账号的活动,包括通过阿里云控制台、OpenAPI、开发者工具对云上产品和服务的访问和使用行为,记录为操作日志。 操作审计支持所有阿里云账号的免开通服务,默认为所有账号记录并存储近 90 天的日志。但在实际应用中,受法律法规和企业审计标准的要求,...
429 0
|
5月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。