0%

因 grafana 告警信息太多无用数据,容易干扰查看
例如使用 企业微信告警消息如下
alert.png
太多无用Labels 例如 endpoint,job,pod,service
还有Value 字段太占空间,Source, Silence 字段,因太长且无用
所以修改模版来精简告警消息

方式一: 使用模版

例如企业微信类的文本告警,根据官网文档知道默认模版来自 default_template.go
主要定义了2个模版,一个是__text_alert_list ,另一个default.message 使用了模版__text_alert_list
我们只需要根据__text_alert_list 模版修改为自定义模版即可

  1. 创建一个消息告警模版
    打开grafana 页面,点击左侧 alerting 图标 ,点击 Contact points 菜单 ,点击New template 按钮
    Template name 填写 text_alert_list
    Content 内 复制如下原始模版
    阅读全文 »

我们在使用 kratos 时 发现没有热部署,每次更新代码都要重新编译,并且重新执行
即使使用 kratos run 也要 停止命令,重新编译

第一个热编译选择了 oxequa/realize ,实际使用中发现 各种无法运行
可能是我打开的方式不对。而且项目好像已经停止维护了…

然后选择 使用 cosmtrek/air 中乱码

1
2
3
4
5
6
7
8
9
[11:17:56] watching internal\service
[11:17:56] !exclude run
[11:17:56] watching test
[11:17:56] building...
[11:17:59] running...
'.' �����ڲ����ⲿ���Ҳ���ǿ����еij���
�����������
[11:18:05] cleaning...
[11:18:05] see you again~

在所有win 命令行下均有此问题,包括cmd,GitBash,PowerShell
在win10 内置linux下无此问题

阅读全文 »

创建时间 create_time 使用的 timestamp 类型
额外参数 仅在 附加规则functioncallback 时有效
thinkphp 文档内没有说明如何使用带参函数或者带参回调

1
2
3
4
5
6
7
8
9
10
namespace Home\Model;
class UserModel extends Model {
protected $_auto = array (
//array('field','填充内容','填充条件','附加规则',[额外参数])
array('status','1'),
array('password','md5',self::MODEL_BOTH,'function') ,
array('name','getName',self::MODEL_BOTH,'callback'),
array('create_time','date',self::MODEL_INSERT,'function','Y-m-d H:i:s')
);
}

变量输出使用的函数可以支持内置的PHP函数或者用户自定义函数,甚至是静态方法。

1
2
3
4
5
6
7
8
9
10
11
12
namespace Home\Model;
class UserModel extends Model {
const STATUS_YES=1;
const STATUS_NO=2;
static public $statusArray = array(
self::STATUS_YES => '是',
self::STATUS_NO => '否',
);
public static function status_string($code){
return self::$statusArray[$code];
}
}
1
{:\\Home\\Model\\UserModel::status_string(1)}

添加一个 vpn

假设我的vpn名称为220.***.***.64

取消勾选 在远程网络上使用默认网关

查看需要访问的网站的ip

1
2
3
PS C:\Users\Administrator> ping www.google.com

正在 Ping www.google.com [69.171.248.65] 具有 32 字节的数据:

69.171.248.65 即需要访问的ip

阅读全文 »

起因是我在使用ngrok 的时候提示
Invalid configuration property value for 'http_proxy', '******@qq.com'

在 gitBash 使用
vue init webpack my-project
gem install jekyll
类似各种语言&框架的安装程序均不能正确安装

阅读全文 »

最近看的阻塞和异步的资料看的比较多,对基础的概念也理解的深了一点点

因为上次项目中一个接口耗时比较长,所以来优化下

项目本身的逻辑上,填写手机号->生成小程序二维码->上传二维码到七牛->更改数据库邀请码图片->返回API响应

其中 生成二维码和上传二维码到七牛均是一个阻塞网络IO

改进的基本想法是:在还没有创建子进程时生成小程序二维码,得到url,然后创建进程,在主进程 响应API接口信息,子进程继续上传图片到七牛,上传成功修改数据库信息

废话不多说,直接上代码

实例

阅读全文 »

创建websocket服务对象

1
$server = new swoole_websocket_server("0.0.0.0", 9501);

收到消息回调

1
2
3
4
5
6
$server->on('message', function (swoole_websocket_server $server, $frame) {
echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
foreach ($server->connections as $fd) {
$server->push($fd, json_encode([$frame->fd,$frame->data]));
}
});
阅读全文 »