mirror of
https://github.com/gravitational/teleport.git
synced 2026-08-28 21:12:20 +08:00
Add BeamCreate and BeamDestroy usage events (#67738)
This commit is contained in:
File diff suppressed because it is too large
Load Diff
+248
-1
@@ -480,6 +480,72 @@ export interface SessionStartBeamMetadata {
|
||||
*/
|
||||
beamId: string;
|
||||
}
|
||||
/**
|
||||
* BeamsCreatedEvent is emitted when a beam VM is created and becomes ready.
|
||||
*
|
||||
* PostHog event: tp.beams.created
|
||||
*
|
||||
* @generated from protobuf message prehog.v1alpha.BeamsCreatedEvent
|
||||
*/
|
||||
export interface BeamsCreatedEvent {
|
||||
/**
|
||||
* anonymized beam ID
|
||||
*
|
||||
* PostHog property: tp.beam.beam_id
|
||||
*
|
||||
* @generated from protobuf field: string beam_id = 1;
|
||||
*/
|
||||
beamId: string;
|
||||
/**
|
||||
* the region where the beam was created
|
||||
*
|
||||
* PostHog property: tp.beam.region
|
||||
*
|
||||
* @generated from protobuf field: string region = 2;
|
||||
*/
|
||||
region: string;
|
||||
/**
|
||||
* time in milliseconds from CreateBeam call to VM ready
|
||||
*
|
||||
* PostHog property: tp.beam.startup_duration_ms
|
||||
*
|
||||
* @generated from protobuf field: int64 startup_duration_ms = 3;
|
||||
*/
|
||||
startupDurationMs: bigint;
|
||||
}
|
||||
/**
|
||||
* BeamsDestroyedEvent is emitted when a beam VM is destroyed.
|
||||
*
|
||||
* PostHog event: tp.beams.destroyed
|
||||
*
|
||||
* @generated from protobuf message prehog.v1alpha.BeamsDestroyedEvent
|
||||
*/
|
||||
export interface BeamsDestroyedEvent {
|
||||
/**
|
||||
* anonymized beam ID
|
||||
*
|
||||
* PostHog property: tp.beam.beam_id
|
||||
*
|
||||
* @generated from protobuf field: string beam_id = 1;
|
||||
*/
|
||||
beamId: string;
|
||||
/**
|
||||
* the reason the beam was destroyed
|
||||
*
|
||||
* PostHog property: tp.beam.destroy_reason
|
||||
*
|
||||
* @generated from protobuf field: prehog.v1alpha.BeamDestroyReason reason = 2;
|
||||
*/
|
||||
reason: BeamDestroyReason;
|
||||
/**
|
||||
* the region where the beam was running
|
||||
*
|
||||
* PostHog property: tp.beam.region
|
||||
*
|
||||
* @generated from protobuf field: string region = 3;
|
||||
*/
|
||||
region: string;
|
||||
}
|
||||
/**
|
||||
* the issuance of a user certificate from the user CA
|
||||
*
|
||||
@@ -4365,6 +4431,18 @@ export interface SubmitEventRequest {
|
||||
* @generated from protobuf field: prehog.v1alpha.UIInteractionEvent ui_interaction = 122;
|
||||
*/
|
||||
uiInteraction: UIInteractionEvent;
|
||||
} | {
|
||||
oneofKind: "beamsCreated";
|
||||
/**
|
||||
* @generated from protobuf field: prehog.v1alpha.BeamsCreatedEvent beams_created = 123;
|
||||
*/
|
||||
beamsCreated: BeamsCreatedEvent;
|
||||
} | {
|
||||
oneofKind: "beamsDestroyed";
|
||||
/**
|
||||
* @generated from protobuf field: prehog.v1alpha.BeamsDestroyedEvent beams_destroyed = 124;
|
||||
*/
|
||||
beamsDestroyed: BeamsDestroyedEvent;
|
||||
} | {
|
||||
oneofKind: undefined;
|
||||
};
|
||||
@@ -4551,6 +4629,29 @@ export enum UserKind {
|
||||
*/
|
||||
SYSTEM = 3
|
||||
}
|
||||
/**
|
||||
* BeamDestroyReason is the reason a beam was destroyed.
|
||||
*
|
||||
* @generated from protobuf enum prehog.v1alpha.BeamDestroyReason
|
||||
*/
|
||||
export enum BeamDestroyReason {
|
||||
/**
|
||||
* @generated from protobuf enum value: BEAM_DESTROY_REASON_UNSPECIFIED = 0;
|
||||
*/
|
||||
UNSPECIFIED = 0,
|
||||
/**
|
||||
* the user explicitly deleted the beam
|
||||
*
|
||||
* @generated from protobuf enum value: BEAM_DESTROY_REASON_USER_DELETED = 1;
|
||||
*/
|
||||
USER_DELETED = 1,
|
||||
/**
|
||||
* the beam was deleted by the garbage collector after expiry
|
||||
*
|
||||
* @generated from protobuf enum value: BEAM_DESTROY_REASON_GC_EXPIRED = 2;
|
||||
*/
|
||||
GC_EXPIRED = 2
|
||||
}
|
||||
/**
|
||||
* DiscoverResource represents a resource type.
|
||||
*
|
||||
@@ -6280,6 +6381,132 @@ class SessionStartBeamMetadata$Type extends MessageType<SessionStartBeamMetadata
|
||||
*/
|
||||
export const SessionStartBeamMetadata = new SessionStartBeamMetadata$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class BeamsCreatedEvent$Type extends MessageType<BeamsCreatedEvent> {
|
||||
constructor() {
|
||||
super("prehog.v1alpha.BeamsCreatedEvent", [
|
||||
{ no: 1, name: "beam_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 2, name: "region", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 3, name: "startup_duration_ms", kind: "scalar", T: 3 /*ScalarType.INT64*/, L: 0 /*LongType.BIGINT*/ }
|
||||
]);
|
||||
}
|
||||
create(value?: PartialMessage<BeamsCreatedEvent>): BeamsCreatedEvent {
|
||||
const message = globalThis.Object.create((this.messagePrototype!));
|
||||
message.beamId = "";
|
||||
message.region = "";
|
||||
message.startupDurationMs = 0n;
|
||||
if (value !== undefined)
|
||||
reflectionMergePartial<BeamsCreatedEvent>(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BeamsCreatedEvent): BeamsCreatedEvent {
|
||||
let message = target ?? this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* string beam_id */ 1:
|
||||
message.beamId = reader.string();
|
||||
break;
|
||||
case /* string region */ 2:
|
||||
message.region = reader.string();
|
||||
break;
|
||||
case /* int64 startup_duration_ms */ 3:
|
||||
message.startupDurationMs = reader.int64().toBigInt();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message: BeamsCreatedEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
||||
/* string beam_id = 1; */
|
||||
if (message.beamId !== "")
|
||||
writer.tag(1, WireType.LengthDelimited).string(message.beamId);
|
||||
/* string region = 2; */
|
||||
if (message.region !== "")
|
||||
writer.tag(2, WireType.LengthDelimited).string(message.region);
|
||||
/* int64 startup_duration_ms = 3; */
|
||||
if (message.startupDurationMs !== 0n)
|
||||
writer.tag(3, WireType.Varint).int64(message.startupDurationMs);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message prehog.v1alpha.BeamsCreatedEvent
|
||||
*/
|
||||
export const BeamsCreatedEvent = new BeamsCreatedEvent$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class BeamsDestroyedEvent$Type extends MessageType<BeamsDestroyedEvent> {
|
||||
constructor() {
|
||||
super("prehog.v1alpha.BeamsDestroyedEvent", [
|
||||
{ no: 1, name: "beam_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
|
||||
{ no: 2, name: "reason", kind: "enum", T: () => ["prehog.v1alpha.BeamDestroyReason", BeamDestroyReason, "BEAM_DESTROY_REASON_"] },
|
||||
{ no: 3, name: "region", kind: "scalar", T: 9 /*ScalarType.STRING*/ }
|
||||
]);
|
||||
}
|
||||
create(value?: PartialMessage<BeamsDestroyedEvent>): BeamsDestroyedEvent {
|
||||
const message = globalThis.Object.create((this.messagePrototype!));
|
||||
message.beamId = "";
|
||||
message.reason = 0;
|
||||
message.region = "";
|
||||
if (value !== undefined)
|
||||
reflectionMergePartial<BeamsDestroyedEvent>(this, message, value);
|
||||
return message;
|
||||
}
|
||||
internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BeamsDestroyedEvent): BeamsDestroyedEvent {
|
||||
let message = target ?? this.create(), end = reader.pos + length;
|
||||
while (reader.pos < end) {
|
||||
let [fieldNo, wireType] = reader.tag();
|
||||
switch (fieldNo) {
|
||||
case /* string beam_id */ 1:
|
||||
message.beamId = reader.string();
|
||||
break;
|
||||
case /* prehog.v1alpha.BeamDestroyReason reason */ 2:
|
||||
message.reason = reader.int32();
|
||||
break;
|
||||
case /* string region */ 3:
|
||||
message.region = reader.string();
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||
let d = reader.skip(wireType);
|
||||
if (u !== false)
|
||||
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
internalBinaryWrite(message: BeamsDestroyedEvent, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
||||
/* string beam_id = 1; */
|
||||
if (message.beamId !== "")
|
||||
writer.tag(1, WireType.LengthDelimited).string(message.beamId);
|
||||
/* prehog.v1alpha.BeamDestroyReason reason = 2; */
|
||||
if (message.reason !== 0)
|
||||
writer.tag(2, WireType.Varint).int32(message.reason);
|
||||
/* string region = 3; */
|
||||
if (message.region !== "")
|
||||
writer.tag(3, WireType.LengthDelimited).string(message.region);
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
return writer;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @generated MessageType for protobuf message prehog.v1alpha.BeamsDestroyedEvent
|
||||
*/
|
||||
export const BeamsDestroyedEvent = new BeamsDestroyedEvent$Type();
|
||||
// @generated message type with reflection information, may provide speed optimized methods
|
||||
class UserCertificateIssuedEvent$Type extends MessageType<UserCertificateIssuedEvent> {
|
||||
constructor() {
|
||||
super("prehog.v1alpha.UserCertificateIssuedEvent", [
|
||||
@@ -13690,7 +13917,9 @@ class SubmitEventRequest$Type extends MessageType<SubmitEventRequest> {
|
||||
{ no: 119, name: "ui_page_view", kind: "message", oneof: "event", T: () => UIPageViewEvent },
|
||||
{ no: 120, name: "ui_usage_reporting_alert_cta_click", kind: "message", oneof: "event", T: () => UIUsageReportingAlertCtaClickEvent },
|
||||
{ no: 121, name: "session_summary_search_event", kind: "message", oneof: "event", T: () => SessionSummarySearchEvent },
|
||||
{ no: 122, name: "ui_interaction", kind: "message", oneof: "event", T: () => UIInteractionEvent }
|
||||
{ no: 122, name: "ui_interaction", kind: "message", oneof: "event", T: () => UIInteractionEvent },
|
||||
{ no: 123, name: "beams_created", kind: "message", oneof: "event", T: () => BeamsCreatedEvent },
|
||||
{ no: 124, name: "beams_destroyed", kind: "message", oneof: "event", T: () => BeamsDestroyedEvent }
|
||||
]);
|
||||
}
|
||||
create(value?: PartialMessage<SubmitEventRequest>): SubmitEventRequest {
|
||||
@@ -14412,6 +14641,18 @@ class SubmitEventRequest$Type extends MessageType<SubmitEventRequest> {
|
||||
uiInteraction: UIInteractionEvent.internalBinaryRead(reader, reader.uint32(), options, (message.event as any).uiInteraction)
|
||||
};
|
||||
break;
|
||||
case /* prehog.v1alpha.BeamsCreatedEvent beams_created */ 123:
|
||||
message.event = {
|
||||
oneofKind: "beamsCreated",
|
||||
beamsCreated: BeamsCreatedEvent.internalBinaryRead(reader, reader.uint32(), options, (message.event as any).beamsCreated)
|
||||
};
|
||||
break;
|
||||
case /* prehog.v1alpha.BeamsDestroyedEvent beams_destroyed */ 124:
|
||||
message.event = {
|
||||
oneofKind: "beamsDestroyed",
|
||||
beamsDestroyed: BeamsDestroyedEvent.internalBinaryRead(reader, reader.uint32(), options, (message.event as any).beamsDestroyed)
|
||||
};
|
||||
break;
|
||||
default:
|
||||
let u = options.readUnknownField;
|
||||
if (u === "throw")
|
||||
@@ -14781,6 +15022,12 @@ class SubmitEventRequest$Type extends MessageType<SubmitEventRequest> {
|
||||
/* prehog.v1alpha.UIInteractionEvent ui_interaction = 122; */
|
||||
if (message.event.oneofKind === "uiInteraction")
|
||||
UIInteractionEvent.internalBinaryWrite(message.event.uiInteraction, writer.tag(122, WireType.LengthDelimited).fork(), options).join();
|
||||
/* prehog.v1alpha.BeamsCreatedEvent beams_created = 123; */
|
||||
if (message.event.oneofKind === "beamsCreated")
|
||||
BeamsCreatedEvent.internalBinaryWrite(message.event.beamsCreated, writer.tag(123, WireType.LengthDelimited).fork(), options).join();
|
||||
/* prehog.v1alpha.BeamsDestroyedEvent beams_destroyed = 124; */
|
||||
if (message.event.oneofKind === "beamsDestroyed")
|
||||
BeamsDestroyedEvent.internalBinaryWrite(message.event.beamsDestroyed, writer.tag(124, WireType.LengthDelimited).fork(), options).join();
|
||||
let u = options.writeUnknownFields;
|
||||
if (u !== false)
|
||||
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||
|
||||
@@ -2348,3 +2348,35 @@ func (e *IdentitySecurityAuditLogsIngestedEvent) Anonymize(a utils.Anonymizer) *
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// BeamsCreatedEvent is emitted when a beam VM is created and becomes ready.
|
||||
type BeamsCreatedEvent prehogv1a.BeamsCreatedEvent
|
||||
|
||||
// Anonymize anonymizes the event.
|
||||
func (e *BeamsCreatedEvent) Anonymize(a utils.Anonymizer) *prehogv1a.SubmitEventRequest {
|
||||
return &prehogv1a.SubmitEventRequest{
|
||||
Event: &prehogv1a.SubmitEventRequest_BeamsCreated{
|
||||
BeamsCreated: &prehogv1a.BeamsCreatedEvent{
|
||||
BeamId: a.AnonymizeString(e.BeamId),
|
||||
Region: e.Region,
|
||||
StartupDurationMs: e.StartupDurationMs,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// BeamsDestroyedEvent is emitted when a beam VM is destroyed.
|
||||
type BeamsDestroyedEvent prehogv1a.BeamsDestroyedEvent
|
||||
|
||||
// Anonymize anonymizes the event.
|
||||
func (e *BeamsDestroyedEvent) Anonymize(a utils.Anonymizer) *prehogv1a.SubmitEventRequest {
|
||||
return &prehogv1a.SubmitEventRequest{
|
||||
Event: &prehogv1a.SubmitEventRequest_BeamsDestroyed{
|
||||
BeamsDestroyed: &prehogv1a.BeamsDestroyedEvent{
|
||||
BeamId: a.AnonymizeString(e.BeamId),
|
||||
Reason: e.Reason,
|
||||
Region: e.Region,
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,6 +342,55 @@ message SessionStartBeamMetadata {
|
||||
string beam_id = 1;
|
||||
}
|
||||
|
||||
// BeamsCreatedEvent is emitted when a beam VM is created and becomes ready.
|
||||
//
|
||||
// PostHog event: tp.beams.created
|
||||
message BeamsCreatedEvent {
|
||||
// anonymized beam ID
|
||||
//
|
||||
// PostHog property: tp.beam.beam_id
|
||||
string beam_id = 1;
|
||||
|
||||
// the region where the beam was created
|
||||
//
|
||||
// PostHog property: tp.beam.region
|
||||
string region = 2;
|
||||
|
||||
// time in milliseconds from CreateBeam call to VM ready
|
||||
//
|
||||
// PostHog property: tp.beam.startup_duration_ms
|
||||
int64 startup_duration_ms = 3;
|
||||
}
|
||||
|
||||
// BeamDestroyReason is the reason a beam was destroyed.
|
||||
enum BeamDestroyReason {
|
||||
BEAM_DESTROY_REASON_UNSPECIFIED = 0;
|
||||
// the user explicitly deleted the beam
|
||||
BEAM_DESTROY_REASON_USER_DELETED = 1;
|
||||
// the beam was deleted by the garbage collector after expiry
|
||||
BEAM_DESTROY_REASON_GC_EXPIRED = 2;
|
||||
}
|
||||
|
||||
// BeamsDestroyedEvent is emitted when a beam VM is destroyed.
|
||||
//
|
||||
// PostHog event: tp.beams.destroyed
|
||||
message BeamsDestroyedEvent {
|
||||
// anonymized beam ID
|
||||
//
|
||||
// PostHog property: tp.beam.beam_id
|
||||
string beam_id = 1;
|
||||
|
||||
// the reason the beam was destroyed
|
||||
//
|
||||
// PostHog property: tp.beam.destroy_reason
|
||||
BeamDestroyReason reason = 2;
|
||||
|
||||
// the region where the beam was running
|
||||
//
|
||||
// PostHog property: tp.beam.region
|
||||
string region = 3;
|
||||
}
|
||||
|
||||
// the issuance of a user certificate from the user CA
|
||||
//
|
||||
// PostHog event: tp.certificate.issued
|
||||
@@ -2307,6 +2356,9 @@ message SubmitEventRequest {
|
||||
|
||||
SessionSummarySearchEvent session_summary_search_event = 121;
|
||||
UIInteractionEvent ui_interaction = 122;
|
||||
|
||||
BeamsCreatedEvent beams_created = 123;
|
||||
BeamsDestroyedEvent beams_destroyed = 124;
|
||||
}
|
||||
|
||||
reserved 8; // UIOnboardGetStartedClickEvent
|
||||
|
||||
Reference in New Issue
Block a user