Jina 3.10.0版本发布:引入Jina ping检查Flow和Executor的准备情况

675ca5f640b83b8bcc2e1e2337a8784f.png

Jina 是一个 MLOps 框架,赋能开发者在云上构建多模态、跨模态的应用程序。Jina 能够将 PoC 提升为生产就绪服务。基础设施的复杂性交给 Jina,开发者能够直接轻松使用高级解决方案和云原生技术。

💡Jina 3.10.0 现已正式发布!

本次更新包含 8 个新增功能、2 个性能改进、7 个错误修复以及 2 个文档改进。

🆕 新功能

jina ping在本地和 Kubernetes 上作为就绪探针启用(#5200)

此功能让您能够检查整个 Flow 或其各个组件的准备情况

jina ping flow grpc://localhost:12345
jina ping executor localhost:12346
jina ping gateway grpc://localhost:12345

成功输出:

INFO   JINA@28600 readiness check succeeded 1 times!!!

输出失败:当就绪检查不成功时,此命令将 exits with code 1

因此,在 Kubernetes 中部署时用作 Executor 和 Gateway 的就绪探针是一个不错的选择。

添加参数以指定将退出运行时的异常(#5165)

您可以指定哪些 Exceptions 应该触发受影响的 Executor 终止

Flow().add(uses=MyExecutor, exit_on_exceptions: ['Exception',  'RuntimeException'])

确保了 Executor 不会陷入无法使用但技术上仍处于活动状态的状态,并且可以重新启动 Executor。这在通过 Kubernetes 自动重启 Executor 时特别有用。

client.post的重试机制(#5176)

client.post()接受max_attemptsinitial_backoff和参数来控制重试请求的能力max_backoffbackoff_multiplier当发生瞬时连接错误时,使用指数退避策略

client.post( on='/', inputs=docs, max_attempts=5, initial_backoff=0.1, max_backoff=0.5, backoff_multiplier=1.5)

添加对各处请求大小的监控‍ (#5111)‍

现在在任何地方都可以监控请求的大小 ( jina_request_size_bytes) :每个 Executor、每个 Gateway 和每个 sharding Head 上。

因此,现在可以通过 Prometheus 和 Grafana 访问这个新指标。

JCloud 的 JSON 日志记录 (#5201)

现在可以创建 JSON 格式的日志,而不是标准的逐行文本输出。

样本输出:

{"created": 1663930387.5850368, "filename": "data_request_handler.py", "funcName": "_load_executor", "levelname": "DEBUG", "lineno": 98, "module": "data_request_handler", "msg": "<jina.serve.executors.BaseExecutor object at 0x7fc1951f78d0> is successfully loaded!", "name": "WorkerRuntime", "pathname": "/home/foo/jina/serve/runtimes/request_handlers/data_request_handler.py", "process": 13386, "processName": "Pod", "thread": 140469860276032, "threadName": "MainThread"}

要启用此功能,请将环境变量设置'JINA_LOG_CONFIG'json'.

支持类似列表的语法来指定可见的 cuda 设备 (#5187)

现在你可以使用设备 ID 来指定可见的CUDA设备,这些设备应该在循环 GPU 分配中使用。

CUDA_VISIBLE_DEVICES=RR1,3

这将以循环方式将 CUDA 设备 1 和 3 分配给不同的 Executor 副本。

使jina hub push非阻塞 (#5129)

jina hub push现在是非阻塞操作,这意味着用户不必在服务器端等待整个推送完成。

在后台处理推送时,可以使用以下命令检查其状态:

jina hub status [<path_to_executor_folder>] [--id TASK_ID] [--verbose] [--replay]

jina hub push中的警告消息 (#5156) 

jina hub push现在可以显示有用的警告消息,例如弃用警告:

029b03b5aaba7706fb4e0693d380e550.png

在事件中添加持续时间信息 (#5157)

Telemetry 的数据现在还包括每个 Event 的持续时间。

🐞 错误修复

修复 Protobuf 的 Python 后端的兼容性 (#5222)

当使用 Python 而不是 cpp 或 udp 作为 Protobuf 的后端时,此错误会导致异常。

通过本次修复,Python 也可以用作 Protobuf 的后端。

将重要参数移动到顺序 (#5205)

从 Jina Hub 拉取时,出于错误的本地缓存实现,这个 Bug(偶尔)会导致 docker.errors.NullResource: Resource ID was not provided 错误,现在已修复。

修复使用 --force-update 登录用户时丢失的信息(#5180)

此错误导致登录用户在强制推送到 Jina Hub 时失败。此问题现在已修复,强制推送可以按预期运行。

使用 gRPC 连接池连接的默认 gRPC 参数 (#5211)

使我们的 gRPC 客户端符合推荐的配置[1]

新列语法的 Bump DocArray 版本 (#5171)

DocArray 中 column 语法的一些更改需要版本提升。

增加最低 Protobuf 版本 (#5166)

Protobuf 库中的一些更改需要版本提升。

删除剩余的打印件 (#5199)

一些不需要的print语句偷偷溜进了我们的代码库,我们把它们踢了出去!

📗 文档改进

  • • 将 os.setenv 更改为os.environ (#5223)

  • • 加入 prefetch(#5220)

  • • 修复 docker 的安装说明(#5213)

  • • 修正语法、措辞、标点符号 (#5209)

  • • 修正语法、标点符号 (#5208)

  • • 阐明 http 中的 exec 端点使用 (#5202)

  • • 加入 grpc 客户端限制警告 (#5193)

  • • 更新常见问题和生命周期 (#5191)

  • • 改进自定义 docker 中有关配置文件的警告 (#5190)

  • • 阐明参数中的返回行为 (#5179)

  • • 添加 exit_on_exceptions 参数的部分 (#5172)

  • • 增加关于如何在 Flow yaml 中传递标签与 JCloud 部署的文档 (#5164)

引用链接

[1] 推荐配置: https://github.com/grpc/grpc/blob/master/doc/keepalive.md

点击 Release Notes(阅读原文) 前往 GitHub 查看更详细的新功能说明以及代码示例!

快来体验!一键安装新版 Jina,并运行 Jina

pip install -U jina

95f1a0b1a04bbf30ceebd45ca9fceb07.png

更多精彩内容(点击图片阅读)

bdb7b24d8be455c82e2c4da1467d9b88.jpeg

9c0b886dabd489612fbaa0fe1e04ee7c.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值