mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2024-08-17 17:30:32 +03:00
Add more tracing
This commit is contained in:
parent
8224e13d3b
commit
ce6b3765a2
@ -149,6 +149,7 @@
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"node-media-server": "^2.1.4",
|
||||
"nodemailer": "^6.0.0",
|
||||
"opentelemetry-instrumentation-sequelize": "^0.29.0",
|
||||
"parse-torrent": "^9.1.0",
|
||||
"password-generator": "^2.0.2",
|
||||
"pg": "^8.2.1",
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { SequelizeInstrumentation } from 'opentelemetry-instrumentation-sequelize'
|
||||
import { diag, DiagLogLevel, trace } from '@opentelemetry/api'
|
||||
import { JaegerExporter } from '@opentelemetry/exporter-jaeger'
|
||||
import { registerInstrumentations } from '@opentelemetry/instrumentation'
|
||||
@ -60,7 +61,8 @@ function registerOpentelemetryTracing () {
|
||||
return [ cmdName, ...cmdArgs ].join(' ')
|
||||
}
|
||||
}),
|
||||
new FsInstrumentation()
|
||||
new FsInstrumentation(),
|
||||
new SequelizeInstrumentation()
|
||||
]
|
||||
})
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { generateMagnetUri } from '@server/helpers/webtorrent'
|
||||
import { getActivityStreamDuration } from '@server/lib/activitypub/activity'
|
||||
import { tracer } from '@server/lib/opentelemetry/tracing'
|
||||
import { getLocalVideoFileMetadataUrl } from '@server/lib/video-urls'
|
||||
import { VideoViewsManager } from '@server/lib/views/video-views-manager'
|
||||
import { uuidToShort } from '@shared/extra-utils'
|
||||
@ -71,6 +72,8 @@ function guessAdditionalAttributesFromQuery (query: VideosCommonQueryAfterSaniti
|
||||
}
|
||||
|
||||
function videoModelToFormattedJSON (video: MVideoFormattable, options: VideoFormattingJSONOptions = {}): Video {
|
||||
const span = tracer.startSpan('peertube.VideoModel.toFormattedJSON')
|
||||
|
||||
const userHistory = isArray(video.UserVideoHistories) ? video.UserVideoHistories[0] : undefined
|
||||
|
||||
const videoObject: Video = {
|
||||
@ -168,10 +171,14 @@ function videoModelToFormattedJSON (video: MVideoFormattable, options: VideoForm
|
||||
videoObject.files = videoFilesModelToFormattedJSON(video, video.VideoFiles)
|
||||
}
|
||||
|
||||
span.end()
|
||||
|
||||
return videoObject
|
||||
}
|
||||
|
||||
function videoModelToFormattedDetailsJSON (video: MVideoFormattableDetails): VideoDetails {
|
||||
const span = tracer.startSpan('peertube.VideoModel.toFormattedDetailsJSON')
|
||||
|
||||
const videoJSON = video.toFormattedJSON({
|
||||
additionalAttributes: {
|
||||
scheduledUpdate: true,
|
||||
@ -199,6 +206,8 @@ function videoModelToFormattedDetailsJSON (video: MVideoFormattableDetails): Vid
|
||||
trackerUrls: video.getTrackerUrls()
|
||||
}
|
||||
|
||||
span.end()
|
||||
|
||||
return Object.assign(videoJSON, detailsJSON)
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,7 @@ import {
|
||||
import { getPrivaciesForFederation, isPrivacyForFederation, isStateForFederation } from '@server/helpers/video'
|
||||
import { LiveManager } from '@server/lib/live/live-manager'
|
||||
import { removeHLSFileObjectStorage, removeHLSObjectStorage, removeWebTorrentObjectStorage } from '@server/lib/object-storage'
|
||||
import { tracer } from '@server/lib/opentelemetry/tracing'
|
||||
import { getHLSDirectory, getHLSRedundancyDirectory } from '@server/lib/paths'
|
||||
import { VideoPathManager } from '@server/lib/video-path-manager'
|
||||
import { getServerActor } from '@server/models/application/application'
|
||||
@ -1535,6 +1536,8 @@ export class VideoModel extends Model<Partial<AttributesOnly<VideoModel>>> {
|
||||
options: BuildVideosListQueryOptions,
|
||||
countVideos = true
|
||||
): Promise<ResultList<VideoModel>> {
|
||||
const span = tracer.startSpan('peertube.VideoModel.getAvailableForApi')
|
||||
|
||||
function getCount () {
|
||||
if (countVideos !== true) return Promise.resolve(undefined)
|
||||
|
||||
@ -1554,6 +1557,8 @@ export class VideoModel extends Model<Partial<AttributesOnly<VideoModel>>> {
|
||||
|
||||
const [ count, rows ] = await Promise.all([ getCount(), getModels() ])
|
||||
|
||||
span.end()
|
||||
|
||||
return {
|
||||
data: rows,
|
||||
total: count
|
||||
|
11
yarn.lock
11
yarn.lock
@ -1732,7 +1732,7 @@
|
||||
semver "^7.3.2"
|
||||
shimmer "^1.2.1"
|
||||
|
||||
"@opentelemetry/instrumentation@^0.29.2":
|
||||
"@opentelemetry/instrumentation@^0.29.0", "@opentelemetry/instrumentation@^0.29.2":
|
||||
version "0.29.2"
|
||||
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.29.2.tgz#70e6d4e1a84508f5e9d8c7c426adcd7b0dba6c95"
|
||||
integrity sha512-LXx5V0ONNATQFCE8C5uqnxWSm4rcXLssdLHdXjtGdxRmURqj/JO8jYefqXCD0LzsqEQ6yxOx2GZ0dgXvhBVdTw==
|
||||
@ -7027,6 +7027,15 @@ open@7:
|
||||
is-docker "^2.0.0"
|
||||
is-wsl "^2.1.1"
|
||||
|
||||
opentelemetry-instrumentation-sequelize@^0.29.0:
|
||||
version "0.29.0"
|
||||
resolved "https://registry.yarnpkg.com/opentelemetry-instrumentation-sequelize/-/opentelemetry-instrumentation-sequelize-0.29.0.tgz#d8355b7c845473b3d66978b80620dba6f686e257"
|
||||
integrity sha512-nBhWMhpOtFxR0+W9WwTC+g49UMPqDMusbceGycDJOaq9l7B/IGo8a15UHKm4N4uU/Cr1NTrvyJ0cFXUtSh7i3g==
|
||||
dependencies:
|
||||
"@opentelemetry/core" "^1.0.0"
|
||||
"@opentelemetry/instrumentation" "^0.29.0"
|
||||
"@opentelemetry/semantic-conventions" "^1.0.0"
|
||||
|
||||
opentracing@^0.14.4:
|
||||
version "0.14.7"
|
||||
resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.7.tgz#25d472bd0296dc0b64d7b94cbc995219031428f5"
|
||||
|
Loading…
Reference in New Issue
Block a user