68 lines
No EOL
1.8 KiB
Go
68 lines
No EOL
1.8 KiB
Go
package postgres
|
|
|
|
import (
|
|
"openreplay/backend/pkg/url"
|
|
. "openreplay/backend/pkg/messages"
|
|
)
|
|
|
|
|
|
|
|
func (conn *Conn) InsertWebStatsLongtask(sessionID uint64, l *LongTask) error {
|
|
return nil // Do we even use them?
|
|
// conn.exec(``);
|
|
}
|
|
|
|
|
|
func (conn *Conn) InsertWebStatsPerformance(sessionID uint64, p *PerformanceTrackAggr) error {
|
|
timestamp := (p.TimestampEnd + p.TimestampStart) /2
|
|
return conn.exec(`
|
|
INSERT INTO events.performance (
|
|
session_id, timestamp, message_id,
|
|
min_fps, avg_fps, max_fps,
|
|
min_cpu, avg_cpu, max_cpu,
|
|
min_total_js_heap_size, avg_total_js_heap_size, max_total_js_heap_size,
|
|
min_used_js_heap_size, avg_used_js_heap_size, max_used_js_heap_size
|
|
) VALUES (
|
|
$1, $2, $3,
|
|
$4, $5, $6,
|
|
$7, $8, $9,
|
|
$10, $11, $12,
|
|
$13, $14, $15
|
|
)`,
|
|
sessionID, timestamp, timestamp, // ??? TODO: primary key by timestamp+session_id
|
|
p.MinFPS, p.AvgFPS, p.MaxFPS,
|
|
p.MinCPU, p.AvgCPU, p.MinCPU,
|
|
p.MinTotalJSHeapSize, p.AvgTotalJSHeapSize, p.MaxTotalJSHeapSize,
|
|
p.MinUsedJSHeapSize, p.AvgUsedJSHeapSize, p.MaxUsedJSHeapSize,
|
|
);
|
|
}
|
|
|
|
func (conn *Conn) InsertWebStatsResourceEvent(sessionID uint64, e *ResourceEvent) error {
|
|
host, _, err := url.GetURLParts(e.URL)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return conn.exec(`
|
|
INSERT INTO events.resources (
|
|
session_id, timestamp, message_id,
|
|
type,
|
|
url, url_host, url_hostpath,
|
|
success, status,
|
|
method,
|
|
duration, ttfb, header_size, encoded_body_size, decoded_body_size
|
|
) VALUES (
|
|
$1, $2, $3,
|
|
$4,
|
|
$5, $6, $7,
|
|
$8, $9,
|
|
NULLIF($10, '')::events.resource_method,
|
|
NULLIF($11, 0), NULLIF($12, 0), NULLIF($13, 0), NULLIF($14, 0), NULLIF($15, 0)
|
|
)`,
|
|
sessionID, e.Timestamp, e.MessageID,
|
|
e.Type,
|
|
e.URL, host, url.DiscardURLQuery(e.URL),
|
|
e.Success, e.Status,
|
|
url.EnsureMethod(e.Method),
|
|
e.Duration, e.TTFB, e.HeaderSize, e.EncodedBodySize, e.DecodedBodySize,
|
|
)
|
|
} |