Hey everyone welcome welcome welcome to the Jaeger maintainer talk We're gonna be talking about a lot of cool stuff. I'm Jonah Cowell, and I'm also joined on stage by Joe Elliot. Nice to meet you. Oh and We're gonna be covering a lot of things about Jaeger open telemetry Where the project is going kind of where it is as you know Jaeger is a graduated project one of a handful Very mature and well adopted in the ecosystem. Joe tell us a little bit about yourself. Sure I'm Joe and you can tell by the images up here. I work on Jaeger. I'm a Jaeger maintainer I work at Grafana, and that's a very terrible picture of my bike I like to bike around my city quite a bit and I don't know if you found your bike at the fountain or That's right. I just walk out and pick it up. It's been my bike ever since and I'm Jonah Cowell I'm the CTO at Logs IO also work on Jaeger among other projects I do a lot of diving because I live in a nice place for that. So that's what I tend to do when I'm not working some photos I've shot recently underwater and Yeah, so in the agenda today, we're gonna talk about distributed tracing in Jaeger a little bit deeper into Open telemetry and then kind of as we go through we'll get a little bit deeper into certain features that we built out We're gonna do a really quick live demo of some of the stuff that we're doing Hopefully I'm gonna do it over Wi-Fi too, which will be really fun And then I doubt we're gonna have time for questions, but come up after we also have a slack channel Which we'll hit on right at the end so with that I'm gonna dive into a Really quick intro for those of you that are just getting started or maybe don't know a lot about distributed tracing in Jaeger As Joe gets deeper into what you can do with open telemetry We wanted to just talk a little bit about a few of the semantics So a trace is an end-to-end transaction going through lots of different hops and different microservices Each of those hops or steps that are going through is a span And that's kind of a little teeny piece of the end-to-end transaction Inside the span you can have all kinds of metadata You can have tags you can attach logs you can attach all kinds of interesting data That's gonna help you either do analytics or troubleshooting And there's just a lot of different use cases and interesting stuff you can do with tracing Which is kind of the most advanced signal in Telemetry today in general and observability So with that kind of talk a little bit about the relationships It's really important in a trace to understand how those spans all come together and roll into Into what's actually happening with the end-user or the API that's being used or exercised And so here you can see some visualizations and you'll see more of them inside the Jaeger UI that explain how The different components of a trace come together and roll into that So obviously inside the data itself there are pointers that say this is the root span where I came from And this is the next hop that I'm going to and kind of shows the different pieces in the relationship And now what you can do is you can also calculate the data off of that to understand errors and latency And do all kinds of cool stuff that we're going to talk about a little bit later And here's the visualization you get when you use Jaeger So if you do install Jaeger, we make it really easy to get started We'll talk about that and you can get these cool visualizations of the tracing data that you're looking at And with that Joe is going to talk a little bit about auto instrumentation. Cool So we're going to talk about the open telemetry clients Those of you who are already using Jaeger may have in the past year or so seen Maybe a message or a warning like this in the docs or on your Jaeger client So about a year ago Jaeger deprecated all of its clients for all of the major languages in favor of the open telemetry clients the community decided to kind of converge on the open telemetry clients as they Kind of implemented the final features that Jaeger already supported the final one kind of being remote sampling if you're familiar with that So Jaeger clients have been deprecated and the Communities encouraged to move to the open telemetry clients which now are feature complete with what you could used to be able to do with your with your Jaeger clients The good news here is that there is very very wide language support for Jaeger In fact, I'm pretty sure it's a super. I'm sorry for the open telemetry clients, which I'm pretty sure is a super set of the Originally supported languages in Jaeger. I was surprised to see for instance Swift is supported So for all of you, you know writing your back end applications in Swift However, many of that is you can also instrument with Jaeger But you'll see some of the major players up there like dot-net and Java and go and node and all of these kind of Major back-end languages and platforms all already supported by open telemetry I will also point out that all of these languages also have a shim between open tracing and open telemetry So if you're using Jaeger, Jaeger implements the open tracing shim as well And it's quite possible you can very easily swap out the Jaeger back-end And your client for the open telemetry implementation of open tracing with maybe little or no code changes So open tracing is a older standard. That was an API standard Jaeger implemented open telemetry also supports that standard And I have a good link in the bottom of this slide I'll also say over my part of this presentation There's a lot of languages and a lot of details And it's impossible to get into all of it So I've tried to include links in all the slides the PDF we've attached to the schedule Should have this all of these links I encourage you to go get that and use this presentation as a jumping off point to you know get into the details of your own systems Another piece of good news is that the configuration of open telemetry clients is very similar to the configuration of your Jaeger clients all through environment variables and a lot of cases are even kind of like a one-to-one mapping so Like service name their service names in open telemetry the you know the data models very similar So a lot of this configuration is just going to be able to translate right over and this is of course not exhaustive I just wanted to show a few examples of Environment variables you were likely using to configure your Jaeger clients and you know showing you that all of these same options You're going to exist over here for your open telemetry clients So we have like sampling options of course is very important in tracing and you can see open telemetries Of course going to support that as well You know your Jaeger agent host where you're pointing your agent The propagation which is very important. We're going to talk about it in a second all of these kind of Configuration points should be available in open telemetry or something similar And again that link at the bottom has every environment variable and every silly little combination of parameters you can pass To talk about the Autoness of this instrumentation everybody gets excited about tracing auto instrumentation because sometimes tracing can feel a little manual We wanted to talk about open telemetry is capable of in this case And I have used maybe three or four of the different open telemetry clients at different times And I think the the good news here is that open telemetry generally does a good job in its clients of meeting the Expectations of the community and the frameworks that they're serving so in Java There's often an expectation of heavy auto instrumentation Spring in particular has a lot of hooks where you can do what you want after events like HGP calls and other events in your in your framework Dot net also kind of has a history of some of this a lot of these powers Whereas maybe go is a language where people expect a little bit more manual work a little bit more manual coding So in my experience diving into these languages, I'd say Your expectations as a developer is hope are hopefully met by the community And I'd certainly communicate that back if you're struggling and another really good point here is For all these languages even ones I don't develop into day to day They're a really good getting started documentation every language if you just jump into the the link there at the bottom You'll find your own language Hopefully and they'll be like the you know, hello world style getting started guide And you hopefully in an hour or two can have very basic instrumentation Set up and you can be writing to Jaeger and you can start seeing that you know open telemetry Jaeger is going to work just fine and you can migrate you find a migration path for your existing applications There's also just wanted to add. There's actually a new go auto instrumentation based on eBPF That's pretty interesting. It's super new, but I think we're going to see more and more innovation of Using things like eBPF to do more automated data collection So definitely keep watching the profiling and eBPF with open telemetry because it's really interesting stuff And I'll make it even easier and deeper data collection. Sorry to chime in. No, absolutely not. Yeah Trace propagation is also going to be very important So you have like a fleet of applications and they're all using the Jaeger clients and they're using what are called the Jaeger headers probably So Jaeger Propagates trace information with the headers and if you don't deep dive into tracing You might not know this but you're gonna need to know this real soon if you start rolling out open telemetry clients Because open telemetry by default communicates with w3c headers Jaeger by default communicates with Jaeger headers and there is some overlap there Most open telemetry clients also support Jaeger headers most Jaeger clients can talk with w3c headers But as you start rolling out some of the first apps with open telemetry, you might find some traces are broken You might need to go look at how you're propagating header values Maybe double-check and standardize on one of the two whatever is more whatever is easier for your particular environment And then you can get your full traces as they pass through both, you know You're Jaeger instrumented applications and your open telemetry instrument applications And finally I wanted to show an example of auto instrumentation So these are some screenshots from a Java auto instrumented app that I threw together I'm not a Java developer All I did was take a restful application that you know has get and post endpoints and then hits a relational database We've all seen this kind of application a million times and then I threw the Java agent jar I just linked it using the Using the instructions on the getting started page in open telemetry And I was immediately able to get some basic tracing going I had very nice attributes from both my HTTP side as well as my database side I'm not sure how visible that is. Hopefully it's okay But you can see that there are the HTTP method the HTTP path the URL The HTTP version that was in use are all automatically being added as attributes to my spans and my trace And then on the database side I was I kind of a surprise to also see a lot of deep information about the database call Automatically added with no code changes I'm seeing like the database query string the name of the database the name of the table that was accessed the kind of operation that was performed and It was really a rich set of information for almost no effort I really made no code changes just linked that jar file and it was ready to go So if you are in the Java spring world, you might have some nice surprises on your the ease of moving to open telemetry And maybe also some of the other more auto auto instrumented kind of languages Next let's talk about I'm moving to open telemetry. I have these clients going Maybe I found my migration path and I'm happy with my setup What kind of pipelines are available now that I have open telemetry and I'm more comfortable in that ecosystem along with my existing Jaeger back end So the good news here is that the open telemetry collector and the clients speak every Jaeger protocol So the Jaeger agents expect one of two protocols which you might be aware of thrift compact or thrift binary There's the port numbers up there the collector supports one of two protocols. Normally, it's g rpc from the agents And there's also a lot of us might have a Kafka queue in our Jaeger pipeline and our trace pipeline The open telemetry collector can read and write all of these protocols and it can write to the Kafka queue in the Formats that Jaeger expects so that means you can really mix and match open telemetry components along with your Jaeger components in almost any combination you want I also put a little link up there It's something important about the collector itself is there's two There's two distributions of the collector. There's one the core distribution does not have Jaeger support But there's one called contrib and I've linked the the docker image there the contrib Open telemetry collector does have Jaeger support. So that's the one you're probably going to be using along with your Jaeger ecosystem The reason we might consider using that's also probably impossible to read the reason We're might consider using the open telemetry collector along with our Jaeger pipeline is the open telemetry collector has a lot of really nice Processors and ability to mutate our spans as they move through it You might find that some of these nice abilities for instance I have highlighted a processor called the redaction processor and you can use it to look for maybe PII or Other patterns other kind of information. You don't want to pass into your back end and it will redact that But there's other processors that will add or delete attributes There's processors that will decorate spans with additional metadata The open telemetry collector is very rich in its ability to modify and work with trace data So I would encourage you to explore the collector as you are kind of getting into the open telemetry ecosystem Because the collector supports like we said all of the same protocols that the That the the Java part or sorry the Jaeger pipeline supports we can really kind of mix and match how we want So I have over here in the green box the Jaeger back end the collector writing to a database and the querier reading from that database And then on the left side we have our applications and they're instrumented now with the open telemetry client I can use the Jaeger agent like I always have because the open telemetry open telemetry client can write directly to it Or I could swap that out with the open telemetry collector. There's you know these applications can do both can do the same thing They can both read the same protocols. They can both write to the collector successfully So you have a lot of flexibility in your pipeline a lot of people use queuing in In Jaeger and like we said before because the open telemetry collector can put Trace data in the Kafka queue in the format Jaeger expects we can use open telemetry collectors in this situation as well So my client maybe I'm writing to a mix of the Jaeger pipeline and the open telemetry Collector pipeline and then I can still use my Kafka queue I'm pulling with my Jaeger ingester and now I'm writing into the database like I always have so there's a lot of flexibility here There's a lot of power a lot of a lot of configuration and a lot of documents to read I would recommend digging in and seeing what you can start doing with your trace pipeline And so what the reason why you may want to move from simple to advanced is either scale reasons resiliency reasons or other kinds of business requirements that you may have but that's typically why people ask Kafka Add Kafka one of the common questions we get all the time is my collectors overloaded or my back end It is overloaded. How do I help? How do we help and in the Jaeger channel? We're gonna tell you you have to look at where the pressure is and probably add some kind of queue some kind of back pressure Mechanism, I mean you really have to scale this stuff as you see fit Yeah, so Final slide for me just kind of trying to be silly here The point being because these applicator these these two processes are so easily interchangeable You know, you can do almost anything you want this particular pipeline is highly Unrecommended, but if you wanted to repeatedly write from collectors to agents to Kafka and back you can do it And maybe you have some bizarre business reason to go about building a pipeline as complicated as this But yeah with that I think we're heading back to Jonah sure cool Yeah, so we're gonna talk a little bit about Joe mentioned the processors There's so many powerful ones and new ones being built constantly like you just started building some of the cool things that show Architectures service maps exactly these are all processors So one of the cool things that we built over the new the last year was actually a new processor And I'm gonna talk about that and how it comes forward in In Jaeger so Jaeger is a distributed tracing system as you saw in the screenshots It can help you debug and understand where your transactions are going, but a lot of people today need APM I want performance monitoring performance data. So how do we move from distributed tracing to understanding performance? It's about introducing new signals aside from traces We also need metrics and we need to understand that so that we can look at my services slowing down I'm seeing more errors trending data this type of thing we need metrics on So we decided to build some additional components. The first piece is the span metrics processor And so you can see here and I'm gonna use my cool little thing is we've we've built We basically built as the traces come into the open telemetry collector We then can send them through this processor Which not only sends the data to Jaeger, but it also creates metrics in the process So we're actually able to derive metrics from the traces and you'll see why this is important in a second Because then we can now start surfacing these metrics and give you information about what's happening in the application So inside your open telemetry collector This is a typical configuration that that you would see for the span metrics processor And how it fits into the pipeline in the top is the definition of the processor And you can see exactly how it's calculating the different buckets that it's that it's collecting and how it's looking at The data in terms of breaking it up into metrics and down in the bottom You can see how this fits into a pipeline where you're calling the trace metrics processor and sorry it's so small within the pipeline right here and The result of this is that we then generate metrics from these traces and we're able to do cool things like Show you the metric data from your applications without any additional Instrumentation and I'm gonna show you this in a live demo, but we can show these Prometheus metrics. You can visualize them in Grafana. You can alert on them in alert manager You can use any Prometheus compatible back end with this feature And so that includes obviously Prometheus Cortex Thanos Mamiir M3 DB You name it anything that does promql will work with this and has the right exporter in open telemetry and I'm gonna show you a Really quick demo of how this looks in Grafana Just so that you can see hopefully I'm not logged out so we've built a couple of dashboards here one is Service performance monitoring dashboard and really quickly here. We can look at the total number of spans We're looking at six hours latency by service. We can actually look at the breakdown of all the metrics And then each particular service you can actually see my catalog service the latency the spans the error rates And then the second really cool dashboard is the service level view So if your team has a particular service like I own the front end of my application You can actually look at all of the particular metrics for your Individual service and these are just coming right off Prometheus Broken down by by the operation. So it's pretty powerful to have this data Available to the team because these metrics are very tied to your business in particular And the second thing that we did aside from creating the metrics is we made them usable inside the Jaeger UI So when you run Jaeger, you can actually see in this new monitoring tab How it's visualized and I'm gonna show you a live demo of this as well So in Jaeger if you haven't updated recently, you'll notice that there is a new tab right here called monitor When you click on monitor what it's going to do is you pick the service that you want And it's going to show you the latency and you see here. We've got percentile buckets Hopefully it's not too small the error rate the request rate and then I can actually go down and see the different Operations and let's say I'm starting to see oh look here. This is showing 11 percent errors on my order service I can actually drill in directly by clicking on that link and it's going to pull up the specific Traces related to that service. So just give it a second. So these are the the traces specifically related to the service So the idea here is It gives you a little bit of a monitoring workflow Obviously, we don't do alerting in Jaeger yet. I mean, you know, that is something that if anyone wants to contribute or work on We definitely would love to have alert manager integration and there's all kinds of cool things that that we can do with this data So that's kind of some of the new stuff that we've done So I did want to also hit on a couple of new features and for those of you that were at the keynote this morning I summarized these in a 45 second video. So it might be a little redundant One of the things that we did that allowed for some of what Joe talked about was was adding I think you did the work for adding otlp. No, you're Yuri did I said I do it for like a year and never got to it and he finally got that up with me and did it I think yeah, so so right now Jaeger takes open telemetry line protocol. That's the raw Protocol for open telemetry so you can send trace data directly from anything speaking open telemetry Into the collector which then gets stored onto disk the other piece which Joe mentioned was adaptive sampling We added that Specifically into open telemetry and do you want to talk a little bit about that one because you you did more on that That's the one. I actually did yeah, so adaptive sampling is a new feature sampling feature in Jaeger that allows you to adjust your sample rates in Response to your volume or your trace volume dynamically So for a long time Jaeger has been able to remote sample which means like pull a document remotely from a remote source And then use that to adjust sample parameters, but it was always a static document What this new feature adaptive sampling does is it will watch your trace data? And if maybe one particular service or one particular endpoint starts overwhelming your back end you can dynamically or the system will dynamically reduce the sample rate for that particular endpoint or service and Allow your back end not to fall over also if the maybe the Throughput of a particular endpoint goes down you could increase your sample rate So you have a larger percentage of traces from that particular service So it's just like a dynamic the ability to dynamically adjust your sample rates based on your current traffic Yeah, and there's a lot of getting back to those processors and open telemetry There's a lot of really interesting Sampling strategies you can implement and sampling and tracing is a really important topic in big talk unto itself The next feature that was added is you saw the kind of tabular views in Jaeger We actually had a community Contribution for flame graphs, which is kind of another interesting way to look at the trace data Joe mentioned earlier that the Jaeger SDKs are deprecated. So that's just another I guess it's not a feature, but Yeah, exactly we like cleaning things up so that's that's important too So some of the things that we want to do today in Jaeger those of you that are users There's a few different dependency graphs it would be nice to have one and Potentially one of the other things that we've discussed is using those new service views that you've been working on To generate that because today you have to run spark to generate the dependency views in Jaeger Or you can run like we do at my company. We run Kafka streams to generate those but either way it's More stuff for the team to manage and run so trying to simplify that is definitely a good idea Something that we need to do something general is handing out there is there we talked about those processors and the collector There is a new processor called the service map processor I think which generates service graph metrics and then Grafana can currently visualize those I don't know if there's any other place I can visualize them But they're open telemetrics and they're an open standard at this point So, you know, you can use those metrics yourself to generate visualizations Grafana can also do it Yeah, so the more context we can add on to those graphs the visual views that the more useful the tool becomes and Obviously, that's super important in when you're doing troubleshooting or monitoring the other piece is Eventually we've had stops and starts on the second major bullet here Which is how do we move away from the Jaeger collector which today writes the data to the back end and Implement something like a pair down open telemetry collector instead It's just less code for us to manage in the project and it's somewhat redundant So this one of the other Maintainers Pavel was working on this But then he kind of took a break on it and I don't know where it is But it's something that we want to do as the projects Matures and continues so more convergence with open telemetry is definitely the the trend with Jaeger And we've got probably Five minutes for any questions So feel free to raise your hand and we will take the questions Go ahead Joe pick I think we did one sec Hi, thanks for the talk does the go ebpf Collector that you mentioned does that do automatic context propagation? Yeah, they just added that into the project about two weeks ago You'll want to search for key val ke y v a l is the little startup that built that and just do key val go and You'll see it. We've tested it out And it definitely works well and does context propagation with ebpf, which is really cool that they're able to do that That is cool. Yeah. Yeah concur. That is very cool. Thank you. Oh, oh It I guess it's in the main hotel repository now, so I stand corrected. Thank you. Thanks Other questions Sure Guests in the green over there or sorry no over here you're next Definitely good a great talk Joe and Jonas are definitely helped to understand Different things an open telemetry and a good, but what's the future of eager? So today we definitely love the eager UI and the storage integrations are really good for Cassandra elastic search And recently the GRBC integration has been added But what's the future for eager and how do we separate out the boundaries between open telemetry and eager? This one's always a debate I mean we would love to have one database right ideally to do this But everyone kind of wants something different So we have people that love Cassandra and use that and people that want to use elastic or open search and then obviously there's other data stores like Like what is it prom scale or no time time scale DB? I believe that guy right there works on it. Yeah, yeah, so there's there's other options So they're compatible There's a bunch of pluggable things and I know you're working on some stuff on Tempo right to do I don't know I've considered it, but I've not done any work on it But yeah, you mentioned the GRPC plug-in, which is a great thing to mention So there is a GRPC back-end so you could write a plug-in for any back-end you wanted at this point And I think there might be a proto. Well, whatever. I'm not sure definitely a GRPC back-end which allows for extension Yeah, so I there's a lot of back-end options and I don't know It's the test suites get crazy right now for us to test every one of the back-end types And I'm not sure where that's gonna go, but yep. Yeah Sorry, I think we're back here. Yeah Great talk. I have two questions for you. First one is do you Have plans to introduce other streaming solution other than Kafka for example nuts Just stream and the second question is Do your metrics Also provide exemplars For example, the trace ad so that let's say if I have a graph on a dashboard I can see a spike. I can click on that spike and go to the particular trace graph Does the open telemetry collector support exemplars Is it remote write exemplars too? It I believe that the the collector does But in this case the The individual traces don't really matter on the metric itself because you already know the context because the The dimensions that you define in the processor for example the path or whatever tag you decide to use Is already going to show you the examples for the metric so it's Not necessarily relevant, but I guess we could if you want to contribute something that puts You know a trace id and there is an exemplar. That's totally Possible. I don't see why not. Yeah, I guess I don't know off the top of my head What the open telemetry support for exemplars right now is I'm getting a thumbs up from jurasi. So yes open telemetry supports exemplars so I would uh presume that right we could if it doesn't already Generate exemplars out of this or out of the span metrics processor Which would make for a compelling use case Like it's really nice to see the metrics generated from your traces and very quickly be able to jump over So I would review the docs if it's not there It's probably an easy add frankly it might be a good good first issue In that for that repo and that view traces button basically brings you to the traces related to the metric Anyway, so it's already kind of been there, but Um, was there a second part of the question? I kind of missed the beginning piece Did you hear the I don't know I had a second question If you are planning to support a different streaming solution like nuts or not just stream instead of kafka Uh, there are no plans at this moment to support other ones the current implementation is kind of like a very bespoke kafka implementation There's no I don't think there's a general shim there. So Uh, a new implementation will require some effort from someone else if you are interested in Contributing something like that. I would start an issue first and Discuss with the maintainers like how you want to implement it and we could talk about it I think the collector the open telemetry collector also only supports kafka. I'm not sure on that Yeah, I'm gonna look at your awesome. It does for sure It definitely does. Yeah, okay And I think we might have time for one last one. Yeah, we'll take one more Uh, thank you guys for the presentation great job. Uh, so at my company we use dot net. Uh, we create dot net apis Uh, and that's a couple months ago or a couple years ago actually or a year ago, whatever We were trying to get yeager set up, but uh, we didn't have the auto instrumentation yet And i'm curious does the auto instrumentation mean that there is no application Cold changes needed and we can just set the environment variables via Config maps or whatever to instrument the app without the developers themselves having to Pull in some type of package. Yeah, that's that's correct So there's a few ways to to instrument in dot net and you can either install the instrumentation Or it can be included as a package inside Your build if you're going somewhere that's serverless in dot net basically So it depends on how you want to deploy, but the auto instrumentation is there There's no code changes needed and there's a great team In that community that are that's working on it And uh, we're happy to take questions after Also, uh happy for you to jump on our slack, which is up on the screen We're we're definitely always there and collaborating and we're always looking for contributors And folks to participate and users to come and talk. So Thank you very much for coming and great to see everyone at cube con Thank you


This study compared three different methods to estimate evaporation fluxes during simulated summer conditions in a grass-covered lysimeter in the laboratory. Two of these methods could be used to partition total evaporation into transpiration, soil evaporation and interception. A water balance calculation, whereby rainfall, soil moisture and percolation were measured, was used for comparison as a benchmark. A hydrous, 1D model and isotope measurements were used for the partitioning of total evaporation. The isotope mass balance method partitions total evaporation of 3.4 mm per day, mmd-sup-1-sup, into 0.4 mmd-sup-1-sup for soil evaporation, 0.3 mmd-sup-1-sup for interception and 2.6 mmd-sup-1-sup for transpiration, while the hydrous, 1D partitions total evaporation of 3.7 mmd-sup-1-sup, into 1 mmd-sup-1-sup for soil evaporation, 0. This article was authored by S.J. Sutonto, J. Wenninger, A. M. J. Coenders-Garrettz, and others.


The Craft Foods Company presents The Great Gilder Sleeves. It's The Great Gilder Sleeves starring Harold Perry. Brought to you by The Craft Foods Company, makers of a complete line of famous quality food products. What can I do for you this Friday afternoon? I don't know, PB. I'm willing to consider anything. That's a good thing. You just stopped in for a little conversation, did you? I suppose I did.  I see Truman has taken a firm stand on a pretty big question. Oh, what's that? Breakfast riding. He's against it. I don't think I feel like talking politics, PB. No, it's fairly warm for this time of year, don't you think so? I feel chilly. It gets chilly in the evening. Last night it was so hot I couldn't sleep. Well, last night was warm. I found that, PB, all you do is agree with me. Well, I wouldn't say that. Yes, you do. You've had the weather hot, cold, warm, and chilly in the last two minutes. Well, you asked for a good conversation. Then let's skip it. I'm sorry, PB. I don't mean to be disagreeable. It's just that I've had to make... That's the question. He's got my prescription. Oh, Strossmorton, I didn't recognize you from the bar. Yeah, it's me. How have you been? I've been just fine, thank you. Mr. D. D., you've got my prescription ready. All right, Mr. Granson. Here you are. That'll be $1.50 and five cents to the government. Here, PB, take it out of this. Oh, no, Strossmorton, I can't let you. Take it out of the five, P. No, please. I've got the exact amount right here. But, Leela, if I want to buy you a present... Thank you, Mr. Granson. We'll call again. Thank you, goodbye. Leela, wait a minute. Are you busy this evening? Well, I mean anything special. I thought maybe we could go out to dinner or something. I'm company for dinner, and I expect to be busy all evening. Oh. Well, how would it be if I dropped over for a while? After dinner, of course. Don't believe that would work out very well. But if you're just having company, what difference would one more make? Company, Strossmorton, please, a cry. Leela, can I take you home? PB, do me a favor, will you?  Well, I don't like to spy on a customer. This is inspiring, PB. I'd look myself on it. I don't want her to see me. Hurry up. Well... Does he look like a newspaper man? How do you tell what he's had on him? See, he must have cracked a joke. She's nothing. Oh, that's him, all right. Oh, my. PB, what happened? I don't think I'm that heavy, Mr. Garrick, maybe. But he's on pretty easy times with her. See? Say no more, PB. I'm not usually noisy at meals, my boy. No, but you generally holler at me a few times about something. You never even noticed I had two helping devices. I noticed, but I let it go. I'll never make the mistake of thinking I don't notice. More coffee, I think? No, thank you, Margie. What's the matter? Don't you feel well? I feel all right. Excuse me, do you mind if I clear the table now over the coffee? I'd like to go downstairs for a little while, if it's all right.  Lee Roy will help you. Help Bertie get this stuff out of the kitchen, Lee Roy. Okay. Bertie's a good kid. Bertie's my pal. What's going on downtown, Bertie? A friend is saving me to advance at the station. Somebody new, Bertie? Oh, no, just one of my old reliable. Good ol' Bertie. Can't we, Bertie? I got a tray load. My goodness, Lee Roy, I'm guessing you're doing all my work. Don't think nothing of it, Bertie. Taking my lunchbox tomorrow. Lee Roy? We don't charge for papers. Who's charging? I do her a favor, but she doesn't me a favor. Gangway, coming through. Careful. You're watching, Bertie. You've got too much on that tray. Just put it down by the sink, Lee Roy. Okay. Oops. Well, only one.  Miss Muddy, could you do me a favor? Sure, honey. Oh, never mind. I can take care of it tomorrow. Oh, dear, what is it? A part of mixing bowls and this rest. And yes, then I've got to clean it up. I'll take it, Bertie. Where is it? There ain't no hurry, Miss Guilty. I don't think she needs it. Of course she does. At least she might. Don't worry about it. I'll take it over. I'll take it. And now, where is it, Bertie? What? I don't know. I don't think I'll miss that. No trouble, Bertie. No trouble at all. The shades are down. No reason for me to feel like a criminal. I'm here on a legitimate errand. Guess who? Rockmart. Yeah, that's right. Bertie asked me to return this mixing bowl she borrowed yesterday. Oh, well, you shouldn't have bothered, Red. No bothered. I had to do it. Well, I'll take it, and thank you. You better let me take it right out of the kitchen. Then you won't drop it. What? Pardon me? I'll just put it in. Oh, come for me. Still eating? We're having our coffee. Well, I can't stay, but I might just have one cup with you. Well, really? I don't believe I've met this gentleman, Leela. No, you haven't. Oh, well, uh... This is Mr. Gildersleeve, my next-door neighbor. This is Mark Wayne. Well, well, glad to meet you. How are you? I hope you don't mind my barging in like this. Leela and I run in and out of each other's houses at all hours. That's quite an exaggeration. Shall we go into the parlour? Coffee all gone? It's cold, I'm afraid. Well, in that case, after you, Mr. Wade. Come on, Mom. After you, Lila. What'd he call you, Leela? Mark calls me Lila. He says I lie like anything. That's pretty good. Can you make a joke out of my name, Mr. Wade? I didn't catch your name. Brock Morton P. Gildersleeve. Let's go into the parlour. Shall we sit down? I'm not sure.  Mark, you're terrible.  I'll stand up for a while, will you? Then I'll take the sofa. Have a stick of gum, Mr. Gildersleeve? I don't chew, thanks, especially when ladies are present. Maybe the lady will put you at your ease. Have a chore, Lila. Thank you. Don't you see how Mark has corrupted me, Brock Morton? Yes. I understand you're a newspaper man, Mr. Wade. That's right. Describe the newshound, the gentleman of the press. Rip out the front page. The lady shot her husband. Put it back. It's only a flesh wound. I did not say he was a scream, Brock Morton. Scream is right. Why don't you tell us some fascinating stories about your newspaper adventures, Mr. Wade? I'm saving all that stuff for my memoirs through darkest journalism with gum and camera. Oh, Mark, how awful. What'd he say? Oh, never mind. Well, I like babies who are going to have a little music. I don't know if this is just the time for. If you want a little music, I'd be glad to sing. Mark just likes me to play for. Well, play for me, Lyle. I'll give you a friend doesn't mind. Go ahead. Play our song, sugar. You want me to? Go ahead. Our songs. Just picture a penthouse way up in the sky.  When we're all alone. When we're all alone. Pretty song, isn't it, the Gillisley? I've heard it sung better. Oh, yeah? When we're all alone. When we're all alone. But we're not alone, are we, Mr. Gillisley? Do you want to fight? Do you want to fight? For money, marbles, or chalk. I promise my mother I'd never fight for free. You step outside for a minute, you big smart aleck, and I'll... Stop, Marlton. Now you both stop this incident. I'm ashamed of both of you. Well, he started it. He insulted me. Apologize, both of you. Come on, Mark, I'm safe. Mr. Gillis-Leave, if I have unwittingly offended you, it was intentional, huh? So I'm Frog Marathon. It's your turn. I won't.  Well, I'm sorry. That's better. Now, I'll tell you what we'll do. We'll play gin-lummies. It's lots of fun. Mark, will you help me get the card table? It's right here in the hall. I'll help you, Leela. I'm already on the job, pal. You're nuts. Wonder what they're doing now? Bye, George. I'll go and see. What? Oh, so it's that way, isn't it? Evidently, I'm not wanted around here. Well, I can take a hint. And when a homemaker feels she's in luck when she has some leftovers in the refrigerator. And it's double luck if you also have a package of craft-smooth-melting cheese food, Velvita. For then, with Velvita's rich cheese sauce, you can transform leftover vegetables, chicken, veal, seafood, or ham into another grand main dish. Now, here's how you make the cheese sauce with dependable Velvita. Simply melt the Velvita in the top of a double border. Then, stir in one-third cup of milk. If you wish, season that smooth golden sauce with cayenne or Worcestershire. Pour it on the hot leftovers and listen to the compliments. Listen with special pleasure because you know that nutritious Velvita is giving the family fine protean, milk minerals, food energy, vitamin A, and riboflavin. At the food store, keep your eye open for genuine Velvita. The cheese food you can depend on to melt smooth and delicious flavor and important food values. I'm doing over there now. Holding hands with that guy, probably. I'm found that I can't just sit here. If anybody wants me, I'll be at the Jolly Boy. Poor gilder sleeve. Poor unhappy gilder sleeve. Outwitted and outclassed, burned by the one he loves. He can only imagine what goes on next door. But you and I, through the magic of radio, we can eavesdrop a little. And to tell the truth, gilder sleeve is not far gone. Pardon me, madam. Is this seat taken? Oh, don't stop. Just move over a little. I don't believe we've been introduced. Oh, I'm the guy you're in love with, remember? Or do you? One meets a man. Mark, you don't really believe the things you say. All those cynical remarks. That's not the rare you. We all wear a mask. Oh, but... But underneath there's something fun. I can tell it just is plain. All the worlds of stage and all the men and women merely players that Shakespeare. Here I go getting literary again. Play, Leela. Music be the food of love. Play on. By the way, I remember to tell you, I adore you. Tell me again. Someday I'll write a novel. You will be in it. Will I? I'll sell it to the movies for a million dollars. Oh, you will. I know you will. I have great faith in you, all right, ma. You must have faith in it, too. And with a million dollars, let me say, do you like hot dogs? I love them. I'll buy a million dollars worth of hot dogs. Really? I would just like to say this, gentlemen, if a member can't come down here and spend an evening at this club without having remarks made about him.  Lord intended no harm, guilty, and no disrespect to either you or Leela. Just a little joke? Yeah, just wasn't it, Troy? Just a little joke. Sure it was. Maddox, can't you take a little joke? Floyd made a remark. Remark my eye. I'll leave it a PB here if it was a remark. Well, now, I... I don't say it was the funniest joke in the world. I'd say it was a joke. Floyd made a remark about a fellow member. And unless he apologizes...  I do not. Well, if you don't think so. Either Floyd apologizes or I go home. Apologize for why I ain't done nothing. What does a guy have to do to crack jokes around here? Get a license? Well, now, Floyd, why... Why don't you just apologize and put an end to all this? Come on, be a good fellow. Why don't he be a good fellow? I take it you refuse to apologize. That I do. I don't think that attitude is going to be helpful. Well, who's trying to be helpful? Stop shoving me, babe. I'm not shoving you, Floyd. I'm just trying to reason with you. Anyone else going home? Judge? Well, it is getting a little late. I think I'll be running along, too, boys. Good night, TV. Good night, Floyd. Good night, John. Good night. Good night, TV. Good night, Mr. Gilbert, Dave. Hope you will feel better. Come along, then, judge. Good night, sore head. You know, Gilbert, I think you went a little far there. I don't care to discuss. No, you did.  No, thanks, judge. I think I'll walk. You will do me good. Well, you're the doctor. Good night, then. Good night. It doesn't matter with me, anyway. Getting into fights with everybody. My friends, even. Who do you think you're fooling? You know what's the matter with you? I didn't do Marrier when you cooked. Always putting things off. You never can make up your mind. Now, this young fella comes in and cuts you out. Well, what if he is a little younger? What does he got that I haven't got? What have I got that he hasn't got? What have I got that he hasn't got? What have I got that he hasn't got? What have I got that he hasn't got? What have I got that he hasn't got? What have I got that he hasn't got? Well, I know one thing he hasn't got. Money. Yes, why, George, I can offer him more than he can. Newspaper man. Probably makes about $30 a week. Come on, Andy, up, son. No, bud, George, I'm not licked yet. He obviously doesn't give up on a fight. I may stall around, but once my mind is made up, boy, I should have done this years ago. Titian. You're the sunset on the Grand Canal and families.   You're the sound of French taxicabs honking their horns in Paris. Hello, Bessie? This is Mr. Gillisley, Bessie. I, uh, excuse me. Leeroy, go away. Bessie, I may be a little late to the office. If a package arrives to me, and the jewelers put it in the safe, never mind, just put it in the safe. Let me see. The ring, the license, ticket. Better call about the ticket. Leeroy, confounded, I told you to go away. Go where? Where does it go? Go to school, go anywhere, but don't hang around here. I don't see you making Marge go away. Margery? You here? I'm not listening. Nuts. A man has no more privacy in this house. Yes, Bertie, what is it? Dr. Needham phoned a little while ago. Oh, yes. Dr. Needham. Did he, um, say anything, Bertie? He said he found he was going to have to be out this morning on church business, but he did try to come over and talk to him this afternoon. Thank you very much. Well, what are you all standing around staring at me for? Come here, my boy. You too, my dear. Sit down, boy. Don't go, Bertie. This concerns you too. Yes, sir. Margery? Leeroy? I wouldn't be surprised if your old uncle had some news for you. Yes, sir? I may have some news. But don't be surprised if you hear some news. Well, aren't you going to say anything? What kind of news, Uncle Moore? Ah, that's a secret. Oh, brother, here we go again. Like somehow. Well, I'm getting kind of tired of that piece. You know any others? Tired? Well, not tired exactly, but I might hear something else. Ma, what is it? Tell me. Ah, I don't know if this is the time, but, well, you're a swell girl, Leland. I wish you every happiness. What? Well, I'm no good, Leland. I'm no good for you. Ma, you must have said that. Well, it's true. You shouldn't have anything to do with me. I'm just a newspaper man, and you know newspaper men. Here today and gone tomorrow. But that's what I love about it. No, no, no. What you ought to do is settle down and marry some nice guy. Somebody dependable. Well, uh, next door, maybe. What if he is a little fat? Ma, there's something you're not telling me. What is it? I've got a job in Newark. In Newark? On the ledger. Well... Well, you know what we said, Leland. No strings, no obligations. Free as the birds both of us. You remember that? I certainly never thought you meant it. Now, don't you worry. You'll get married one of these days. You'll get married. When I do it, we'll be to a gentleman. Oh, that's the trouble with women. Always recrimination. Always a lot of fuss. Why can't we just be charming about this? No goodbyes and no regrets. That's the way. Now, I'll tell you what you do.  I'll just tiptoe out and close the door. So as not to spoil the memory. What do you say? I don't care whether you tiptoe or not. Just be sure you close the door. I'll be sitting right there. I'll walk in there and I'll put it to her straight. I'll say to her, Leland, I'm going to ask you to give me just five minutes of your time. I've got something I want to ask you. Will you marry me? Not next month or next week, but right now. I've got the ring, I've got the license, and I've got Dr. Neaton where I can lay my hands on him. That's my proposition. Take it or leave it. If that smart alec says anything, I'll tell him to shut up. I will, too. It's him or me. Jackmall! Leland, you've been asked to give me just five minutes of your time. There's something I want to ask you. Well, of course, but come in, won't you? Thanks. Are you looking for something? Where's, uh, what's his name? Mr. Wayne, I haven't the faintest idea.  I shall be very much surprised if I ever see him again after the way I've packed him all. You, uh, told him to go away? Oh, he wasn't using enough for a few days, but no one could stand him from all the night. He had none of y'all's good qualities. That's right. I'm running on, and you stand, and I... sit down, won't you? Make yourself comfortable. Don't care if I do. Run and get me an ashtray. That's a good girl. There. Now a mask. Got one. Oh, let me light it for you. I love lighting your cigar. Hmm. Mind if I put my feet up on this stool? Oh, no, no, dude. Here, let me move it for you.  Now, what is it you wanted to ask me, Godmother? Oh, yes. Leela? Yes. How would you like to go to the movies? Oh, just as soon as I finish this cigar. I'll run up and get my things en masse, so I won't have to keep you waiting. Must I wear my pretty new spring hat? Absolutely. I would like to look... That's the stuff. Well, no use rushing into anything. Europe and Asia are going hungry and facing actual starvation. Therefore, it's up to us, the best fed nation in the world, to tighten our belts. We can share a meal and save a life. And here's how. Buy only as much bread and other wheat products as you really need. Use rice, fats, and oils sparingly. Don't waste any food. Turn in your used fats and oils at the food store promptly. Plant a garden and raise as much of your family's food as you can. You are saving food for those who desperately need it when you buy less, especially when you use up those leftovers. Listen, don't eat so much. We could all cut down a little. I know I could. They're children abroad who could be kept alive just by the food we throw out. Let's think of that when we sit down to do that. The Great Guilt of Slave is played by Harold Perry. It is written by John Whedon and Sam Moore. The music is by Jack Meeker. This is John Lange speaking for the Kraft Foods Company inviting you to listen in again next week for the further adventures of the Great Guilders Slave. Good night, everybody. More and more America's good cooks are using Kraft prepared mustards to add lively flavor interest to food. Have you tried blending the tangy flavor of Kraft salad mustard into omelettes, Welsh rabbits, chopped pickle relish, and a golden cream sauce for hot cooked vegetables? They're all extra delicious flavored with Kraft salad mustard. Your dealer also is featuring another popular variety, the Kraft mustard with nifty horseradish added. Buy both kinds. Ask for Kraft horseradish mustard and tangy, golden Kraft salad mustard when you shop tomorrow.


My name is Seraphine Camden. I'm the convener of the Understanding Africa summer course and we are happy to have you this year as students on this course. For those of you who have already confirmed their place, thank you. For those of you who still have to do that, please, we would really appreciate that you do that now. The course this year has in the other years that this course has been running, which is now more than five years, will be very exciting experience of learning together about a very interesting and fascinating continent that Africa is. The course is very broad in terms of the themes and the topic that we cover. So we will go all the way from pre-colonial Africa into the colonial era, moving on to the independence and post-colonial Africa and looking at some of the challenges of Africa into the 21st century. But we'll also touch on languages and cultures of Africa in this course. We will have sessions on hopefully on music in Africa, religion in Africa. We will look at manuscripts of a number of African languages and the literature produced in African languages. We will be planning also to have sessions on gender, gender and women in Africa governance. So there's a lot of interesting topic that this course will be attempting and making sure we touch on and cover with you. It will also be a learning experience together where you'll be part of the whole learning process and the journey that we'll be having together in this course. Thank you again for joining this course and see you soon on the online platform of the course this year. Thank you.