full diff: https://2226e083fc390003ae5aa8325c3c92789afa0e7a...b3f49c06ffaeef24d09c6c08ec8ec8425a0303e2 includes: - microsoft/hcsshim#718 wclayer: Work around Windows bug when expanding sandbox size - fixes microsoft/hcsshim#708 Windows Host Compute Service bug breaks docker (and other) sandboxes bigger than 20G on Windows 1903 - fixes microsoft/hcsshim#624The hcsshim on Windows 10 1903 always fails to build Docker image - fixes/addresses docker/for-win#3884 An error occurred while attempting to build Docker image (especially this comment and the next comments after: https://github.com/docker/for-win/issues/3884#issuecomment-498939672) - fixes/addresses docker/for-win#4100 Windows 1903 fails when storage-opt used - fixes moby/moby#36831 hcsshim::PrepareLayer failed in Win32: The parameter is incorrect (https://github.com/moby/moby/issues/36831#issuecomment-498612392) - fixes Stannieman/audacity-with-asio-builder#5 Docker won't build container - fixes MicrosoftDocs/visualstudio-docs#3523 Error when running build with storage-opts set - fixes moby/moby#39524 Docker build windows 19.03 --storage-opt size>20G Note that this is a temporary workaround for a bug in the platform, and will be reverted once that is addressed: - microsoft/hcsshim#721 Revert 718 when Windows 19H1 has expand sandbox fix Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
44 lines
1.4 KiB
Go
44 lines
1.4 KiB
Go
package oc
|
|
|
|
import (
|
|
"github.com/sirupsen/logrus"
|
|
"go.opencensus.io/trace"
|
|
)
|
|
|
|
var _ = (trace.Exporter)(&LogrusExporter{})
|
|
|
|
// LogrusExporter is an OpenCensus `trace.Exporter` that exports
|
|
// `trace.SpanData` to logrus output.
|
|
type LogrusExporter struct {
|
|
}
|
|
|
|
// ExportSpan exports `s` based on the the following rules:
|
|
//
|
|
// 1. All output will contain `s.Attributes`, `s.TraceID`, `s.SpanID`,
|
|
// `s.ParentSpanID` for correlation
|
|
//
|
|
// 2. Any calls to .Annotate will not be supported.
|
|
//
|
|
// 3. The span itself will be written at `logrus.InfoLevel` unless
|
|
// `s.Status.Code != 0` in which case it will be written at `logrus.ErrorLevel`
|
|
// providing `s.Status.Message` as the error value.
|
|
func (le *LogrusExporter) ExportSpan(s *trace.SpanData) {
|
|
// Combine all span annotations with traceID, spanID, parentSpanID
|
|
baseEntry := logrus.WithFields(logrus.Fields(s.Attributes))
|
|
baseEntry.Data["traceID"] = s.TraceID.String()
|
|
baseEntry.Data["spanID"] = s.SpanID.String()
|
|
baseEntry.Data["parentSpanID"] = s.ParentSpanID.String()
|
|
baseEntry.Data["startTime"] = s.StartTime
|
|
baseEntry.Data["endTime"] = s.EndTime
|
|
baseEntry.Data["duration"] = s.EndTime.Sub(s.StartTime).String()
|
|
baseEntry.Data["name"] = s.Name
|
|
baseEntry.Time = s.StartTime
|
|
|
|
level := logrus.InfoLevel
|
|
if s.Status.Code != 0 {
|
|
level = logrus.ErrorLevel
|
|
baseEntry.Data[logrus.ErrorKey] = s.Status.Message
|
|
}
|
|
baseEntry.Log(level, "Span")
|
|
}
|