Artifact e5630e086a541ec89e3a7f53a8582fb1bc454c5c201a650ebcd8e3e9c874402f:
- File
docs/site/content/docs/reference/sdk/observer/otel/api.md
— part of check-in
[d1016bd2ef]
at
2026-04-26 08:12:25
on branch trunk
— site(landing): SVG architecture diagram + SDK refresh (#7)
* site(landing): SVG architecture diagram + SDK regen
- Replace ยง04 ASCII diagram with an SVG mirroring the dagnats style: three columns (callers / core / plugins), ember flow arrows with CALLS / DELEGATE / EVENTS / PERSIST labels, bottom box for .fossil (SQLite). Picks up the layout's existing .diagram CSS with no new styles. - Refresh gomarkdoc-generated SDK pages โ they had drifted from current Go doc comments since the original generation.
* docs(site): drop redundant body H1s from frontmatter pages
Each of the four moved docs (architecture, extension-points, migration-from-fossil, testing) and the two hand-written driver _index pages had a body '# Title' that duplicated their frontmatter 'title:'. Hextra renders both, producing the visible doubled headline. Removing the body H1 leaves Hextra's frontmatter-driven page heading as the single source.
SDK api.md pages from gomarkdoc are unaffected โ they have no frontmatter, so Hextra promotes their body H1 to the page title without duplication.
* site(landing): bump version refs to v0.4.2 (user: [email protected], size: 8555) [annotate] [blame] [check-ins using]
<!-- Code generated by gomarkdoc. DO NOT EDIT --> # otel ```go import "github.com/danmestas/libfossil/observer/otel" ``` Package otel provides OpenTelemetry implementations of the libfossil SyncObserver and CheckoutObserver interfaces. Import this package only when you want OTel instrumentation โ it pulls in the OTel SDK dependency. ## Index - [type CheckoutObserver](<#CheckoutObserver>) - [func NewCheckoutObserver\(\) \*CheckoutObserver](<#NewCheckoutObserver>) - [func \(o \*CheckoutObserver\) CommitCompleted\(info libfossil.CommitEnd\)](<#CheckoutObserver.CommitCompleted>) - [func \(o \*CheckoutObserver\) CommitStarted\(info libfossil.CommitStart\)](<#CheckoutObserver.CommitStarted>) - [func \(o \*CheckoutObserver\) Error\(err error\)](<#CheckoutObserver.Error>) - [func \(o \*CheckoutObserver\) ExtractCompleted\(info libfossil.ExtractEnd\)](<#CheckoutObserver.ExtractCompleted>) - [func \(o \*CheckoutObserver\) ExtractFileCompleted\(name string, change libfossil.UpdateChange\)](<#CheckoutObserver.ExtractFileCompleted>) - [func \(o \*CheckoutObserver\) ExtractStarted\(info libfossil.ExtractStart\)](<#CheckoutObserver.ExtractStarted>) - [func \(o \*CheckoutObserver\) ScanCompleted\(info libfossil.ScanEnd\)](<#CheckoutObserver.ScanCompleted>) - [func \(o \*CheckoutObserver\) ScanStarted\(dir string\)](<#CheckoutObserver.ScanStarted>) - [func \(o \*CheckoutObserver\) String\(\) string](<#CheckoutObserver.String>) - [type SyncObserver](<#SyncObserver>) - [func NewSyncObserver\(\) \*SyncObserver](<#NewSyncObserver>) - [func \(o \*SyncObserver\) Completed\(info libfossil.SessionEnd\)](<#SyncObserver.Completed>) - [func \(o \*SyncObserver\) Error\(err error\)](<#SyncObserver.Error>) - [func \(o \*SyncObserver\) HandleCompleted\(info libfossil.HandleEnd\)](<#SyncObserver.HandleCompleted>) - [func \(o \*SyncObserver\) HandleStarted\(info libfossil.HandleStart\)](<#SyncObserver.HandleStarted>) - [func \(o \*SyncObserver\) RoundCompleted\(round int, stats libfossil.RoundStats\)](<#SyncObserver.RoundCompleted>) - [func \(o \*SyncObserver\) RoundStarted\(round int\)](<#SyncObserver.RoundStarted>) - [func \(o \*SyncObserver\) Started\(info libfossil.SessionStart\)](<#SyncObserver.Started>) - [func \(o \*SyncObserver\) String\(\) string](<#SyncObserver.String>) - [func \(o \*SyncObserver\) TableSyncCompleted\(info libfossil.TableSyncEnd\)](<#SyncObserver.TableSyncCompleted>) - [func \(o \*SyncObserver\) TableSyncStarted\(info libfossil.TableSyncStart\)](<#SyncObserver.TableSyncStarted>) <a name="CheckoutObserver"></a> ## type [CheckoutObserver](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L208-L223>) CheckoutObserver implements libfossil.CheckoutObserver using OpenTelemetry spans and metrics. ```go type CheckoutObserver struct { // contains filtered or unexported fields } ``` <a name="NewCheckoutObserver"></a> ### func [NewCheckoutObserver](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L227>) ```go func NewCheckoutObserver() *CheckoutObserver ``` NewCheckoutObserver returns a CheckoutObserver that records spans and metrics using the OTel global tracer and meter providers. <a name="CheckoutObserver.CommitCompleted"></a> ### func \(\*CheckoutObserver\) [CommitCompleted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L328>) ```go func (o *CheckoutObserver) CommitCompleted(info libfossil.CommitEnd) ``` <a name="CheckoutObserver.CommitStarted"></a> ### func \(\*CheckoutObserver\) [CommitStarted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L314>) ```go func (o *CheckoutObserver) CommitStarted(info libfossil.CommitStart) ``` <a name="CheckoutObserver.Error"></a> ### func \(\*CheckoutObserver\) [Error](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L347>) ```go func (o *CheckoutObserver) Error(err error) ``` <a name="CheckoutObserver.ExtractCompleted"></a> ### func \(\*CheckoutObserver\) [ExtractCompleted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L277>) ```go func (o *CheckoutObserver) ExtractCompleted(info libfossil.ExtractEnd) ``` <a name="CheckoutObserver.ExtractFileCompleted"></a> ### func \(\*CheckoutObserver\) [ExtractFileCompleted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L264>) ```go func (o *CheckoutObserver) ExtractFileCompleted(name string, change libfossil.UpdateChange) ``` <a name="CheckoutObserver.ExtractStarted"></a> ### func \(\*CheckoutObserver\) [ExtractStarted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L250>) ```go func (o *CheckoutObserver) ExtractStarted(info libfossil.ExtractStart) ``` <a name="CheckoutObserver.ScanCompleted"></a> ### func \(\*CheckoutObserver\) [ScanCompleted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L301>) ```go func (o *CheckoutObserver) ScanCompleted(info libfossil.ScanEnd) ``` <a name="CheckoutObserver.ScanStarted"></a> ### func \(\*CheckoutObserver\) [ScanStarted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L291>) ```go func (o *CheckoutObserver) ScanStarted(dir string) ``` <a name="CheckoutObserver.String"></a> ### func \(\*CheckoutObserver\) [String](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L369>) ```go func (o *CheckoutObserver) String() string ``` <a name="SyncObserver"></a> ## type [SyncObserver](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L23-L39>) SyncObserver implements libfossil.SyncObserver using OpenTelemetry spans and metrics. ```go type SyncObserver struct { // contains filtered or unexported fields } ``` <a name="NewSyncObserver"></a> ### func [NewSyncObserver](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L43>) ```go func NewSyncObserver() *SyncObserver ``` NewSyncObserver returns a SyncObserver that records spans and metrics using the OTel global tracer and meter providers. <a name="SyncObserver.Completed"></a> ### func \(\*SyncObserver\) [Completed](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L126>) ```go func (o *SyncObserver) Completed(info libfossil.SessionEnd) ``` <a name="SyncObserver.Error"></a> ### func \(\*SyncObserver\) [Error](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L142>) ```go func (o *SyncObserver) Error(err error) ``` <a name="SyncObserver.HandleCompleted"></a> ### func \(\*SyncObserver\) [HandleCompleted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L166>) ```go func (o *SyncObserver) HandleCompleted(info libfossil.HandleEnd) ``` <a name="SyncObserver.HandleStarted"></a> ### func \(\*SyncObserver\) [HandleStarted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L155>) ```go func (o *SyncObserver) HandleStarted(info libfossil.HandleStart) ``` <a name="SyncObserver.RoundCompleted"></a> ### func \(\*SyncObserver\) [RoundCompleted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L100>) ```go func (o *SyncObserver) RoundCompleted(round int, stats libfossil.RoundStats) ``` <a name="SyncObserver.RoundStarted"></a> ### func \(\*SyncObserver\) [RoundStarted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L85>) ```go func (o *SyncObserver) RoundStarted(round int) ``` <a name="SyncObserver.Started"></a> ### func \(\*SyncObserver\) [Started](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L69>) ```go func (o *SyncObserver) Started(info libfossil.SessionStart) ``` <a name="SyncObserver.String"></a> ### func \(\*SyncObserver\) [String](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L368>) ```go func (o *SyncObserver) String() string ``` String returns a human\-readable description. <a name="SyncObserver.TableSyncCompleted"></a> ### func \(\*SyncObserver\) [TableSyncCompleted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L191>) ```go func (o *SyncObserver) TableSyncCompleted(info libfossil.TableSyncEnd) ``` <a name="SyncObserver.TableSyncStarted"></a> ### func \(\*SyncObserver\) [TableSyncStarted](<https://github.com/danmestas/libfossil/blob/main/observer/otel/otel.go#L180>) ```go func (o *SyncObserver) TableSyncStarted(info libfossil.TableSyncStart) ``` Generated by [gomarkdoc](<https://github.com/princjef/gomarkdoc>)