Her BEP etkinlik türünün, build_event_stream.proto içerisinde minimum düzeyde belgelenen kendi anlamı vardır. Aşağıdaki sözlükte her etkinlik türü açıklanmaktadır.
İptal edildi
Aborted
etkinliği, diğer türlerin yerine geçtiğinde, diğer etkinliklerden farklı olarak Aborted
için karşılık gelen bir kimlik türü bulunmaz. Bu etkinlik, derlemenin erken sonlandırıldığını ve altında göründüğü etkinlik kimliğinin normal bir şekilde oluşturulmadığını gösterir. Aborted
, derlemenin neden tamamlanmadığını açıklayan bir enum ve kullanıcı dostu bir açıklama içerir.
Örneğin, kullanıcı Bazel'i kesintiye uğrattığında bir derleme bir hedefi değerlendiriyorsa BeP aşağıdakine benzer bir etkinlik içerir:
{
"id": {
"targetCompleted": {
"label": "//:foo",
"configuration": {
"id": "544e39a7f0abdb3efdd29d675a48bc6a"
}
}
},
"aborted": {
"reason": "USER_INTERRUPTED"
}
}
ActionExecuted
Bir derlemedeki belirli bir İşlemin yürütülmesi hakkında ayrıntılı bilgi sağlar. Varsayılan olarak bu etkinlik, yapı hatalarının temel nedenini belirlemek için yalnızca başarısız işlemler için BEP'ye dahil edilir. Kullanıcılar, --build_event_publish_all_actions
işaretini ActionExecuted
etkinliklerinin tümünü içerecek şekilde ayarlayabilir.
BuildFinished
Komut tamamlandıktan sonra tek bir BuildFinished
etkinliği gönderilir ve komut için çıkış kodunu içerir. Bu etkinlik güvenilir başarı/başarısızlık bilgileri sağlar.
BuildMetadata
--build_metadata
işaretinin ayrıştırılmış içeriğini içerir. Bu etkinlik, harici verileri (tanımlayıcılar gibi) tesisat yaparak Bazel'in diğer araçlarla entegrasyonunu desteklemek için oluşturulmuştur.
BuildMetrics
Her komutun sonunda tek bir BuildMetrics
etkinliği gönderilir ve komut sırasında derleme aracının davranışını ölçmek için yararlı sayaçlar/göstergeler içerir. Bu metrikler, gerçekten yapılan işi gösterir ve yeniden kullanılan önbelleğe alınmış işleri saymaz.
Komut yürütülürken Java çöp toplama işlemi yapılmadıysa memory_metrics
değerinin doldurulmayabileceğini unutmayın. Kullanıcılar, memory_metrics
öğesini doldurmak için komutun sonunda çöp toplayıcıyı çalışmaya zorlayan --memory_profile=/dev/null
seçeneğini ayarlayabilir.
{
"id": {
"buildMetrics": {}
},
"buildMetrics": {
"actionSummary": {
"actionsExecuted": "1"
},
"memoryMetrics": {},
"targetMetrics": {
"targetsLoaded": "9",
"targetsConfigured": "19"
},
"packageMetrics": {
"packagesLoaded": "5"
},
"timingMetrics": {
"cpuTimeInMs": "1590",
"wallTimeInMs": "359"
}
}
}
BuildStarted
BEP akışındaki ilk etkinlik olan BuildStarted
, anlamlı bir çalışma başlamadan önce komutu açıklayan meta verileri içerir.
BuildToolLogs
Komutun sonunda, derleme aracı tarafından oluşturulan ve derleme aracı davranışını anlamaya veya hata ayıklamaya yardımcı olabilecek dosyaların URI'leri dahil tek bir BuildToolLogs
etkinliği gönderilir. Bazı bilgiler satır içine dahil edilmiş olabilir.
{
"id": {
"buildToolLogs": {}
},
"lastMessage": true,
"buildToolLogs": {
"log": [
{
"name": "elapsed time",
"contents": "MC4xMjEwMDA="
},
{
"name": "process stats",
"contents": "MSBwcm9jZXNzOiAxIGludGVybmFsLg=="
},
{
"name": "command.profile.gz",
"uri": "file:///tmp/.cache/bazel/_bazel_foo/cde87985ad0bfef34eacae575224b8d1/command.profile.gz"
}
]
}
}
CommandLine
BEP, tüm komut satırı bağımsız değişkenlerinin (seçenekler ve yorumlanmamış bağımsız değişkenler dahil) temsillerini içeren birden fazla CommandLine
etkinliği içerir.
Her CommandLine
etkinliğinin StructuredCommandLineId
alanında, hangi temsili aktardığını belirten bir etiket bulunur. BEP'de bu tür üç etkinlik görünür:
"original"
: Komut satırı, Bazel'ın .rc dosyalarından alınan başlangıç seçenekleri olmadan Bazel istemcisinden aldığı şekilde yeniden oluşturuldu."canonical"
: .rc dosyalarının genişletildiği ve çağrı politikasının uygulandığı etkili komut satırı."tool"
:--experimental_tool_command_line
seçeneğinden doldurulur. Bu, Bazel'i BEP aracılığıyla sarmalayan bir aracın komut satırını aktarmak için yararlıdır. Bu, doğrudan kullanılan base64 kodlu birCommandLine
ikili protokol arabellek mesajı veya ayrıştırılan ancak yorumlanmayan bir dize olabilir (çünkü aracın seçenekleri Bazel'den farklı olabilir).
Yapılandırma
Bir derlemedeki üst düzey hedeflerde kullanılan her configuration
için bir Configuration
etkinliği gönderilir. Her zaman en az bir yapılandırma
etkinliği bulunur. id
, TargetConfigured
ve TargetComplete
etkinlik kimlikleri tarafından yeniden kullanılır ve çok yapılandırmalı derlemelerde bu etkinliklerin anlamını açıklığa kavuşturmak için gereklidir.
{
"id": {
"configuration": {
"id": "a5d130b0966b4a9ca2d32725aa5baf40e215bcfc4d5cdcdc60f5cc5b4918903b"
}
},
"configuration": {
"mnemonic": "k8-fastbuild",
"platformName": "k8",
"cpu": "k8",
"makeVariable": {
"COMPILATION_MODE": "fastbuild",
"TARGET_CPU": "k8",
"GENDIR": "bazel-out/k8-fastbuild/bin",
"BINDIR": "bazel-out/k8-fastbuild/bin"
}
}
}
ConvenienceSymlinksIdentified
Deneysel. --experimental_convenience_symlinks_bep_event
seçeneği belirlenirse build
komutları tarafından çalışma alanındaki sembolik bağlantıların nasıl yönetileceğini belirtmek için tek bir ConvenienceSymlinksIdentified
etkinliği oluşturulur.
Bu sayede, Bazel'i uzaktan çağıran ve ardından yerel çalışma alanını Bazel yerel olarak çalıştırılmış gibi düzenleyen derleme araçları etkinleştirilebilir.
{
"id": {
"convenienceSymlinksIdentified":{}
},
"convenienceSymlinksIdentified": {
"convenienceSymlinks": [
{
"path": "bazel-bin",
"action": "CREATE",
"target": "execroot/google3/bazel-out/k8-fastbuild/bin"
},
{
"path": "bazel-genfiles",
"action": "CREATE",
"target": "execroot/google3/bazel-out/k8-fastbuild/genfiles"
},
{
"path": "bazel-out",
"action": "CREATE",
"target": "execroot/google3/bazel-out"
}
]
}
}
Getir
Komut yürütme işleminin parçası olarak bir Getirme işleminin gerçekleştirildiğini belirtir. Diğer etkinliklerin aksine, önbelleğe alınan getirme sonucu yeniden kullanılırsa bu etkinlik BEP akışında görünmez.
NamedSetOfFiles
NamedSetOfFiles
etkinlikleri, komut değerlendirmesi sırasında oluşturulan bir depset
dosyasıyla eşleşen bir yapıyı bildirir.
Geçiş yoluyla dahil edilen depsetler NamedSetOfFilesId
ile tanımlanır.
Bir akışın NamedSetOfFiles
etkinliklerini yorumlama hakkında daha fazla bilgi için BEP örnekleri sayfasına göz atın.
OptionsParsed
Tek bir OptionsParsed
etkinliği, komuta uygulanan tüm seçenekleri listeleyerek başlangıç seçeneklerini komut seçeneklerinden ayırır. Varsa InvocationPolicy'yi de içerir.
{
"id": {
"optionsParsed": {}
},
"optionsParsed": {
"startupOptions": [
"--max_idle_secs=10800",
"--noshutdown_on_low_sys_mem",
"--connect_timeout_secs=30",
"--output_user_root=/tmp/.cache/bazel/_bazel_foo",
"--output_base=/tmp/.cache/bazel/_bazel_foo/a61fd0fbee3f9d6c1e30d54b68655d35",
"--deep_execroot",
"--expand_configs_in_place",
"--idle_server_tasks",
"--write_command_log",
"--nowatchfs",
"--nofatal_event_bus_exceptions",
"--nowindows_enable_symlinks",
"--noclient_debug",
],
"cmdLine": [
"--enable_platform_specific_config",
"--build_event_json_file=/tmp/bep.json"
],
"explicitCmdLine": [
"--build_event_json_file=/tmp/bep.json"
],
"invocationPolicy": {}
}
}
PatternExpanded
PatternExpanded
etkinlikleri, komut satırında sağlanan kalıplarla eşleşen tüm hedeflerin kümesini gösterir. Başarılı komutlar için PatternExpandedId
içindeki tüm kalıplar ve PatternExpanded
etkinliğinin çocuklarındaki tüm hedefleri içeren tek bir etkinlik mevcuttur. Kalıp, test_suite
ile eklenen test hedefleri
test_suite
herhangi bir kısmına genişlerse. Çözümlenemeyen her kalıp için BEP, kalıbı tanımlayan bir PatternExpandedId
içeren ek bir Aborted
etkinliği içerir.
{
"id": {
"pattern": {
"pattern":["//base:all"]
}
},
"children": [
{"targetConfigured":{"label":"//base:foo"}},
{"targetConfigured":{"label":"//base:foobar"}}
],
"expanded": {
"testSuiteExpansions": {
"suiteLabel": "//base:suite",
"testLabels": "//base:foo_test"
}
}
}
İlerleme
İlerleme etkinlikleri, komutun yürütülmesi sırasında Bazel tarafından üretilen standart çıkışı ve standart hatayı içerir. Bu etkinlikler ayrıca, mantıksal bir "parent" etkinliği (özellikle NamedSetOfFiles) tarafından bildirilmeyen etkinlikleri duyurmak için gerektiğinde otomatik olarak oluşturulur.
TargetComplete
Yürütme aşamasını tamamlayan her (target, configuration, aspect)
kombinasyonu için BEP'ye bir TargetComplete
etkinliği dahil edilir. Etkinlik, hedefin başarı/başarısızlık durumunu ve hedefin istenen çıkış gruplarını içerir.
{
"id": {
"targetCompleted": {
"label": "//examples/py:bep",
"configuration": {
"id": "a5d130b0966b4a9ca2d32725aa5baf40e215bcfc4d5cdcdc60f5cc5b4918903b"
}
}
},
"completed": {
"success": true,
"outputGroup": [
{
"name": "default",
"fileSets": [
{
"id": "0"
}
]
}
]
}
}
TargetConfigured
Analiz aşamasını tamamlayan her hedef için BEP'ye bir TargetConfigured
etkinliği dahil edilir. Bu, bir hedefin "kural türü" özelliği için yetkili kaynaktır. Hedefe uygulanan yapılandırmalar, etkinliğin duyurulan alt etkinliklerinde görünür.
Örneğin, --experimental_multi_cpu
seçenekleriyle derleme yapmak, iki yapılandırmaya sahip tek bir hedef için aşağıdaki TargetConfigured
etkinliğini oluşturabilir:
{
"id": {
"targetConfigured": {
"label": "//starlark_configurations/multi_arch_binary:foo"
}
},
"children": [
{
"targetCompleted": {
"label": "//starlark_configurations/multi_arch_binary:foo",
"configuration": {
"id": "c62b30c8ab7b9fc51a05848af9276529842a11a7655c71327ade26d7c894c818"
}
}
},
{
"targetCompleted": {
"label": "//starlark_configurations/multi_arch_binary:foo",
"configuration": {
"id": "eae0379b65abce68d54e0924c0ebcbf3d3df26c6e84ef7b2be51e8dc5b513c99"
}
}
}
],
"configured": {
"targetKind": "foo_binary rule"
}
}
TargetSummary
Yürütülen her (target, configuration)
çifti için yapılandırılmış hedefin yürütülmesini ve bu yapılandırılmış hedefe uygulanan tüm yönlerini kapsayan toplam başarı sonucuna sahip bir TargetSummary
etkinliği eklenir.
TestResult
Test istenirse her test denemesi, parçalama ve test başına çalıştırma için bir TestResult
etkinliği gönderilir. Bu, BEP tüketicilerinin, testlerinde başarısız olan test işlemlerini tam olarak tanımlamalarına ve her test işlemi için test çıkışlarını (günlükler, test.xml dosyaları gibi) tanımlamalarına olanak tanır.
TestSummary
Test istenirse her test (target,
configuration)
için test sonuçlarının yorumlanması için gereken bilgileri içeren bir TestSummary
etkinliği gönderilir. Test başına deneme, parçalama ve çalıştırma sayısı dahil edilmiştir. Böylece, BEP tüketicilerinin yapıları bu boyutlarda birbirinden ayırt edebilmesi sağlanmış olur. FLAKY
testlerini FAILED
testlerinden ayırt etmek için birleştirilmiş TestStatus
oluşturulurken test başına deneme ve çalıştırma sayısı dikkate alınır.
UnstructuredCommandLine
CommandLine'ın aksine bu etkinlik, tüm .bazelrc
dosyalarını genişlettikten ve --config
işareti dikkate alındıktan sonra derleme aracının karşılaştığı ayrıştırılmamış komut satırı işaretlerini dize biçiminde taşır.
Belirli bir komutun yürütülmesini tam olarak yeniden oluşturmak için UnstructuredCommandLine
etkinliğinden yararlanılabilir.
WorkspaceConfig
Tek bir WorkspaceConfig
etkinliği, çalışma alanıyla ilgili yapılandırma bilgilerini (ör. yürütme kökü) içerir.
WorkspaceStatus
Tek bir WorkspaceStatus
etkinliği, çalışma alanı durumu komutunun sonucunu içerir.