使用tensorflow 计算正则模型, 数据来源为Prometheus的数据近7天的数据, 然后计算了90%区间的上下限和当前值的概率密度
import requests
import pandas as pd
import tensorflow as tf
from datetime import datetime, timedelta
# 定义 Prometheus 查询的参数
url = "http://{your_path}/api/v1/query_range"
## 查询的QL
query = 'sum(alter_count{group="namespace"})'
start_time = int((datetime.now() - timedelta(days=7)).timestamp())
end_time = int(datetime.now().timestamp())
# 构建查询参数
params = {
"query": query,
"start": start_time,
"end": end_time,
"step": "1h"
}
# 发起 GET 请求
response = requests.get(url, params=params)
# 解析响应数据
data = response.json()['data']['result']
# 处理数据
results = []
for item in data:
for value in item['values']:
results.append({
'timestamp': pd.to_datetime(value[0], unit='s'),
'value': float(value[1])
})
# 将数据转化为 DataFrame
df = pd.DataFrame(results)
df.set_index('timestamp', inplace=True)
# 构建 TensorFlow 模型
mean_value = tf.cast(df['value'].mean(), tf.float32)
std_dev = tf.cast(df['value'].std(), tf.float32)
# 取最后值, 也就是当前值
input_data = df.iloc[-1]['value']
input_data = tf.cast(input_data, tf.float32) # 将输入数据转换为 f服务器托管网loat32 类型
result = tf.exp(-tf.square(input_data - mean_value) / (2 * tf.square(std_dev))) / (std_dev * tf.sqrt(2 * 3.14159))
print("当前数据 {} 的正态分布概率密度值为: {}".format(input_服务器托管网data.numpy(), result.numpy()))
# 计算命中 80% 区间的上下界
lower_bound = mean_value + tf.math.erfinv(-0.45) * std_dev
upper_bound = mean_value + tf.math.erfinv(0.45) * std_dev
print("命中 90% 区间的上界为: {}".format(upper_bound.numpy()))
print("命中 90% 区间的下界为: {}".format(lower_bound.numpy()))
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
一、关于ECI 背景从2018年正式发布,ECI已经打磨了整整4个年头,如今也已经快速成长为了阿里云serverless容器的基础设施,服务着阿里内外众多的公有云客户与云产品,每天承接着数百万的弹性容器创建。 然而,ECI这些年却未参与到集团双十一大促,双十一…