Documentation
¶
Index ¶
- Constants
- type BindingMismatchRule
- type LegacyAlertStatusRule
- type LegacyKnowledgeRule
- type LegacyTicketStatusRule
- type MissingAlertEmbeddingRule
- func (r *MissingAlertEmbeddingRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
- func (r *MissingAlertEmbeddingRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
- func (r *MissingAlertEmbeddingRule) ID() diagnosismodel.RuleID
- type MissingAlertMetadataRule
- func (r *MissingAlertMetadataRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
- func (r *MissingAlertMetadataRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
- func (r *MissingAlertMetadataRule) ID() diagnosismodel.RuleID
- type MissingTicketEmbeddingRule
- func (r *MissingTicketEmbeddingRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
- func (r *MissingTicketEmbeddingRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
- func (r *MissingTicketEmbeddingRule) ID() diagnosismodel.RuleID
- type OrphanedTagIDRule
- type Rule
Constants ¶
const ( RuleIDMissingAlertEmbedding diagnosismodel.RuleID = "missing_alert_embedding" RuleIDMissingTicketEmbedding diagnosismodel.RuleID = "missing_ticket_embedding" )
const RuleIDBindingMismatch diagnosismodel.RuleID = "binding_mismatch"
const RuleIDLegacyAlertStatus diagnosismodel.RuleID = "legacy_alert_status"
const RuleIDLegacyKnowledge diagnosismodel.RuleID = "legacy_knowledge"
const RuleIDLegacyTicketStatus diagnosismodel.RuleID = "legacy_ticket_status"
const RuleIDMissingAlertMetadata diagnosismodel.RuleID = "missing_alert_metadata"
const RuleIDOrphanedTagID diagnosismodel.RuleID = "orphaned_tag_id"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BindingMismatchRule ¶
type BindingMismatchRule struct{}
BindingMismatchRule detects bidirectional reference inconsistencies between alerts and tickets. Specifically:
- Alert.TicketID points to a ticket that does not exist
- Alert.TicketID points to a ticket that does not list the alert in its AlertIDs
func NewBindingMismatchRule ¶
func NewBindingMismatchRule() *BindingMismatchRule
func (*BindingMismatchRule) Check ¶
func (r *BindingMismatchRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
func (*BindingMismatchRule) Fix ¶
func (r *BindingMismatchRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
func (*BindingMismatchRule) ID ¶
func (r *BindingMismatchRule) ID() diagnosismodel.RuleID
type LegacyAlertStatusRule ¶
type LegacyAlertStatusRule struct{}
LegacyAlertStatusRule detects alerts whose Status is "" or "unbound" (pre-v0.10.0 data).
func NewLegacyAlertStatusRule ¶
func NewLegacyAlertStatusRule() *LegacyAlertStatusRule
func (*LegacyAlertStatusRule) Check ¶
func (r *LegacyAlertStatusRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
func (*LegacyAlertStatusRule) Fix ¶
func (r *LegacyAlertStatusRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
func (*LegacyAlertStatusRule) ID ¶
func (r *LegacyAlertStatusRule) ID() diagnosismodel.RuleID
type LegacyKnowledgeRule ¶ added in v0.14.0
type LegacyKnowledgeRule struct {
// contains filtered or unexported fields
}
LegacyKnowledgeRule detects old-format knowledge entries that need migration to the new format.
func NewLegacyKnowledgeRule ¶ added in v0.14.0
func NewLegacyKnowledgeRule(knowledgeSvc *svcknowledge.Service) *LegacyKnowledgeRule
NewLegacyKnowledgeRule creates a new LegacyKnowledgeRule.
func (*LegacyKnowledgeRule) Check ¶ added in v0.14.0
func (r *LegacyKnowledgeRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
func (*LegacyKnowledgeRule) Fix ¶ added in v0.14.0
func (r *LegacyKnowledgeRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
func (*LegacyKnowledgeRule) ID ¶ added in v0.14.0
func (r *LegacyKnowledgeRule) ID() diagnosismodel.RuleID
type LegacyTicketStatusRule ¶
type LegacyTicketStatusRule struct{}
LegacyTicketStatusRule detects tickets whose Status is "pending" (pre-deprecation data). NormalizeLegacyStatus() handles this at read-time, but the DB record remains dirty.
func NewLegacyTicketStatusRule ¶
func NewLegacyTicketStatusRule() *LegacyTicketStatusRule
func (*LegacyTicketStatusRule) Check ¶
func (r *LegacyTicketStatusRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
func (*LegacyTicketStatusRule) Fix ¶
func (r *LegacyTicketStatusRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
func (*LegacyTicketStatusRule) ID ¶
func (r *LegacyTicketStatusRule) ID() diagnosismodel.RuleID
type MissingAlertEmbeddingRule ¶
type MissingAlertEmbeddingRule struct {
// contains filtered or unexported fields
}
MissingAlertEmbeddingRule detects alerts with empty embeddings.
func NewMissingAlertEmbeddingRule ¶
func NewMissingAlertEmbeddingRule(llmClient gollem.LLMClient) *MissingAlertEmbeddingRule
func (*MissingAlertEmbeddingRule) Check ¶
func (r *MissingAlertEmbeddingRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
func (*MissingAlertEmbeddingRule) Fix ¶
func (r *MissingAlertEmbeddingRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
func (*MissingAlertEmbeddingRule) ID ¶
func (r *MissingAlertEmbeddingRule) ID() diagnosismodel.RuleID
type MissingAlertMetadataRule ¶
type MissingAlertMetadataRule struct {
// contains filtered or unexported fields
}
MissingAlertMetadataRule detects alerts that still have default title or description set by the ingest pipeline when LLM generation failed.
func NewMissingAlertMetadataRule ¶
func NewMissingAlertMetadataRule(llmClient gollem.LLMClient) *MissingAlertMetadataRule
func (*MissingAlertMetadataRule) Check ¶
func (r *MissingAlertMetadataRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
func (*MissingAlertMetadataRule) Fix ¶
func (r *MissingAlertMetadataRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
func (*MissingAlertMetadataRule) ID ¶
func (r *MissingAlertMetadataRule) ID() diagnosismodel.RuleID
type MissingTicketEmbeddingRule ¶
type MissingTicketEmbeddingRule struct {
// contains filtered or unexported fields
}
MissingTicketEmbeddingRule detects tickets with empty embeddings.
func NewMissingTicketEmbeddingRule ¶
func NewMissingTicketEmbeddingRule(llmClient gollem.LLMClient) *MissingTicketEmbeddingRule
func (*MissingTicketEmbeddingRule) Check ¶
func (r *MissingTicketEmbeddingRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
func (*MissingTicketEmbeddingRule) Fix ¶
func (r *MissingTicketEmbeddingRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
func (*MissingTicketEmbeddingRule) ID ¶
func (r *MissingTicketEmbeddingRule) ID() diagnosismodel.RuleID
type OrphanedTagIDRule ¶
type OrphanedTagIDRule struct{}
OrphanedTagIDRule detects alerts and tickets that reference tag IDs that no longer exist in the DB.
func NewOrphanedTagIDRule ¶
func NewOrphanedTagIDRule() *OrphanedTagIDRule
func (*OrphanedTagIDRule) Check ¶
func (r *OrphanedTagIDRule) Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
func (*OrphanedTagIDRule) Fix ¶
func (r *OrphanedTagIDRule) Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
func (*OrphanedTagIDRule) ID ¶
func (r *OrphanedTagIDRule) ID() diagnosismodel.RuleID
type Rule ¶
type Rule interface {
// ID returns the unique identifier for this rule.
ID() diagnosismodel.RuleID
// Check detects issues in the repository and returns them.
Check(ctx context.Context, repo interfaces.Repository) ([]diagnosismodel.Issue, error)
// Fix repairs a single issue detected by this rule.
Fix(ctx context.Context, repo interfaces.Repository, issue diagnosismodel.Issue) error
}
Rule represents a single diagnosis rule. The RuleID returned by ID() is stored as Issue.RuleID, establishing a 1:1 mapping.