当前位置: 首页 > news >正文

用于网站建设的费用怎么备注百度快照如何优化

用于网站建设的费用怎么备注,百度快照如何优化,做网站用java,江苏中星建设集团网站为了实现高效的监控和警报,普罗米修斯提供了一个强大的统计信息上报机制。通过这个机制,可以将应用程序的各种统计信息发送到普罗米修斯,普罗米修斯会对这些信息进行处理,然后提供丰富的监控和警报功能。下面是基本的统计信息上报…

为了实现高效的监控和警报,普罗米修斯提供了一个强大的统计信息上报机制。通过这个机制,可以将应用程序的各种统计信息发送到普罗米修斯,普罗米修斯会对这些信息进行处理,然后提供丰富的监控和警报功能。下面是基本的统计信息上报结构:

1. 指标

在普罗米修斯中,指标是指一个可以被测量的数据,例如请求次数、响应时间等。指标由一个名称和一组标签组成。名称是指标的唯一标识符,标签用于对指标进行分类。

2. 指标类型

普罗米修斯支持四种指标类型:计数器、测量值、直方图和摘要。计数器是一个简单的累加器,用于记录事件发生的次数。测量值记录事件的数值,例如响应时间。直方图和摘要用于记录事件的分布情况。

3. 上报格式

在普罗米修斯中,指标是通过 HTTP POST 请求发送的。请求的主体是一个文本格式的数据,其中包含了要上报的所有指标。数据格式如下:

# TYPE {指标名称} {指标类型}
{指标名称}{标签键}=“{标签值}”,{标签键}=“{标签值”}… {指标值}

  • 指标名称(Metric Name):描述要监控的实体,例如:http_requests_total、memory_usage_bytes 等。
  • 标签(Labels):是一组键值对,用于对指标进行分类和过滤。例如:{instance=“192.168.1.1:8080”, job=“api_server”}。标签可以帮助开发者更精确地描述和查找数据。
  • 指标值(Metric Value):是指标的实际数值,例如:100、3.14 等。这个值是随着时间变化的,因此在不同的时间点可能有不同的数值。

例如,上报一个名为“http_requests_total”的计数器类型指标,其标签键为“method”、“handler”和“status”,标签值分别为“GET”、“/api”和“200”,其值为“1234”:

# TYPE http_requests_total counter
http_requests_total{method=“GET”,handler=“/api”,status=“200”} 1234

另一个例子是一个名为“http_request_duration_seconds”的测量值类型指标,其标签键为“method”和“handler”,标签值分别为“POST”和“/login”,其值为“0.00654”:

# TYPE http_request_duration_seconds gauge
http_request_duration_seconds{method=“POST”,handler=“/login”} 0.00654

最后,一个名为“http_request_duration_histogram”的直方图类型指标,其标签键为“handler”,标签值为“/home”,其值为“{0.005, 0.01, 0.025, 0.05, 0.1}”:

# TYPE http_request_duration_histogram histogram
http_request_duration_histogram_bucket{handler=“/home”,le=“0.005”} 0
http_request_duration_histogram_bucket{handler=“/home”,le=“0.01”} 3
http_request_duration_histogram_bucket{handler=“/home”,le=“0.025”} 5
http_request_duration_histogram_bucket{handler=“/home”,le=“0.05”} 10
http_request_duration_histogram_bucket{handler=“/home”,le=“0.1”} 20
http_request_duration_histogram_bucket{handler=“/home”,le=“+Inf”} 30
http_request_duration_histogram_sum{handler=“/home”} 3.14159265359
http_request_duration_histogram_count{handler=“/home”} 30

通过上述的设计,可以将应用程序的各种统计信息发送到普罗米修斯,并且可以利用普罗米修斯提供的丰富功能进行监控和警报。

下面的时序图展示了应用程序如何将指标发送给普罗米修斯,并且如何使用普罗米修斯的查询功能来检索和分析这些指标。

App Prometheus User 发送指标 返回响应 发送查询请求 返回响应 App Prometheus User

以下是一个使用Go语言调用Prometheus接口上报内存占用的示例。在这个示例中,将使用 Go 语言编写一个简单的应用程序,该程序将部署在一个容器内,并监听 13499 端口。当收到客户端请求时,服务器将获取容器内存占用信息,然后使用 gRPC 将数据发送回客户端。

首先,确保安装了以下 Go 语言库:

  1. Prometheus 客户端库:github.com/prometheus/client_golang/prometheus
  2. gRPC:google.golang.org/grpc

下面是一个简化的示例代码:

package mainimport ("context""fmt""log""net""github.com/prometheus/client_golang/prometheus""github.com/prometheus/client_golang/prometheus/promauto""google.golang.org/grpc"
)// 定义 gRPC 服务
type server struct{}// 定义指标
var (curMemUsed = promauto.NewGaugeVec(prometheus.GaugeOpts{Name: "cur_mem_used",Help: "Current memory usage in bytes",}, []string{"container_name", "container_id"})
)// 实现 gRPC 服务接口
func (s *server) GetMemoryUsage(ctx context.Context, req *MemoryRequest) (*MemoryResponse, error) {containerName := req.GetContainerName()containerID := req.GetContainerID()// 获取容器内存使用情况,假设为 memUsagememUsage := getMemoryUsage(containerName, containerID)// 上报指标curMemUsed.WithLabelValues(containerName, containerID).Set(float64(memUsage))// 构建响应res := &MemoryResponse{MemoryUsage: memUsage,}return res, nil
}func main() {// 启动 gRPC 服务器lis, err := net.Listen("tcp", ":13499")if err != nil {log.Fatalf("failed to listen: %v", err)}s := grpc.NewServer()RegisterMemoryServiceServer(s, &server{})fmt.Println("Server is running on port 13499")if err := s.Serve(lis); err != nil {log.Fatalf("failed to serve: %v", err)}
}func getMemoryUsage(containerName, containerID string) int64 {// 这里应该实现获取容器内存使用情况的逻辑,返回内存使用量(字节)// 在此示例中,我们使用一个固定值作为内存使用情况return 1024 * 1024 * 100 // 假设内存使用量为 100MB
}

此代码示例定义了一个名为 cur_mem_used 的 Prometheus 指标,使用容器名称和容器 ID 作为标签。在接收到客户端请求时,服务器将获取容器内存使用情况,并上报给 Prometheus。同时,服务器还将通过 gRPC 将内存使用数据发送回客户端。

请注意,getMemoryUsage 函数需要根据实际情况实现,以获取容器内存使用情况。这里仅为了演示目的,使用了一个固定值。

接下来,我们将编写一个简单的 Go 语言 gRPC 客户端,该客户端将连接到之前实现的 gRPC 服务器以获取容器内存使用情况。首先,确保安装了以下 Go 语言库:

  1. gRPC:google.golang.org/grpc

以下是客户端代码示例:

package mainimport ("context""fmt""log""time""google.golang.org/grpc"
)const (address = "localhost:13499"
)func main() {// 设置连接服务器的超时时间conn, err := grpc.Dial(address, grpc.WithInsecure(), grpc.WithBlock(), grpc.WithTimeout(3*time.Second))if err != nil {log.Fatalf("did not connect: %v", err)}defer conn.Close()// 创建 MemoryService 客户端client := NewMemoryServiceClient(conn)// 定义请求参数containerName := "example_container"containerID := "example_container_id"// 调用 GetMemoryUsage 方法获取容器内存使用情况ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)defer cancel()req := &MemoryRequest{ContainerName: containerName,ContainerID:   containerID,}res, err := client.GetMemoryUsage(ctx, req)if err != nil {log.Fatalf("could not get memory usage: %v", err)}fmt.Printf("Memory usage of container %s (ID: %s) is: %d bytes\n", containerName, containerID, res.GetMemoryUsage())
}

在此示例中,创建了一个 gRPC 客户端,连接到之前实现的 gRPC 服务器(监听地址为 “localhost:13499”)。然后,构建了一个 MemoryRequest 对象,包含容器名称和容器 ID。接下来,调用 GetMemoryUsage 方法发送请求,获取容器内存使用情况。最后,打印出获取到的内存使用量。

请注意,需要将 address 变量设置为实际 gRPC 服务器的地址。同时,根据实际需求,可能需要修改容器名称和容器 ID。

总结

通过上述的设计,可以将应用程序的各种统计信息发送到普罗米修斯,并且可以利用普罗米修斯提供的丰富功能进行监控和警报。

http://www.fp688.cn/news/163860.html

相关文章:

  • 课程网站建设情况关键词大全
  • 美国最大的vps网站策划
  • 长春网站建设小程国内十大搜索引擎网站
  • 淮南市重点工程建设管理局网站优化网站推广网站
  • 网站哪个公司做的好手游推广代理平台有哪些
  • 重庆网站建设的价格低公司网站设计与制作
  • 做一个像qq空间的网站全球搜索网站排名
  • 阿里云做网站电话网络推广用什么软件好
  • 有了源代码如何做网站外包网络推广公司
  • 桃城网站建设代理怎么进行seo
  • 官方关停13家网站百度安装app
  • 美妆网站开发规划书营销公司网站
  • 做一个网站大概要多少钱东莞网络营销公司
  • 制作精美网站建设独立搜索引擎在线观看
  • 公众号开发专业旺道seo软件
  • 无人在线观看高清视频8怎么优化关键词
  • 网站编辑seo销售外包
  • 武汉高端网站定制设计师今日要闻
  • 武汉高端网站建设公司营销型网站建设总结
  • 北京海淀网站建设公司免费广告投放网站
  • 做网站能成功吗广州网站制作公司
  • 个人操作做网站排名百度精准搜索
  • 台州网站建站公司seo是什么seo怎么做
  • 网站制作前景北京做网页的公司
  • 东莞企业网站制重庆seo技术博客
  • 现场直播cctv5直播吧北京网站优化企业
  • 佛山建站互联网营销师报名官网
  • 初中做语文题的网站最好最全的搜索引擎
  • 蛋糕教做网站最新长尾关键词挖掘
  • 找人做app网站吗申请域名的方法和流程