| 
									
										
										
										
											2021-04-02 02:04:02 +08:00
										 |  |  | package api | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							| 
									
										
										
										
											2021-11-29 17:18:01 +08:00
										 |  |  | 	"net/http" | 
					
						
							| 
									
										
										
										
											2021-04-02 02:04:02 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/api/response" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/infra/metrics" | 
					
						
							| 
									
										
										
										
											2023-01-27 15:50:36 +08:00
										 |  |  | 	contextmodel "github.com/grafana/grafana/pkg/services/contexthandler/model" | 
					
						
							| 
									
										
										
										
											2021-11-29 17:18:01 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/web" | 
					
						
							| 
									
										
										
										
											2021-04-02 02:04:02 +08:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-27 15:50:36 +08:00
										 |  |  | func (hs *HTTPServer) PostFrontendMetrics(c *contextmodel.ReqContext) response.Response { | 
					
						
							| 
									
										
										
										
											2021-11-29 17:18:01 +08:00
										 |  |  | 	cmd := metrics.PostFrontendMetricsCommand{} | 
					
						
							|  |  |  | 	if err := web.Bind(c.Req, &cmd); err != nil { | 
					
						
							|  |  |  | 		return response.Error(http.StatusBadRequest, "bad request data", err) | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-04-02 02:04:02 +08:00
										 |  |  | 	for _, event := range cmd.Events { | 
					
						
							| 
									
										
										
										
											2021-12-02 16:34:39 +08:00
										 |  |  | 		if recorder, ok := metrics.FrontendMetrics[event.Name]; ok { | 
					
						
							| 
									
										
										
										
											2021-04-02 02:04:02 +08:00
										 |  |  | 			recorder(event) | 
					
						
							|  |  |  | 		} else { | 
					
						
							| 
									
										
										
										
											2021-12-02 16:34:39 +08:00
										 |  |  | 			c.Logger.Debug("Received unknown frontend metric", "metric", event.Name) | 
					
						
							| 
									
										
										
										
											2021-04-02 02:04:02 +08:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return response.Empty(200) | 
					
						
							|  |  |  | } |